@memberjunction/ng-entity-viewer 6.2.0-edge.0 → 6.2.0-edge.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts +22 -0
  2. package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts.map +1 -1
  3. package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js +57 -13
  4. package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js.map +1 -1
  5. package/dist/lib/entity-cards/entity-cards.component.d.ts +67 -5
  6. package/dist/lib/entity-cards/entity-cards.component.d.ts.map +1 -1
  7. package/dist/lib/entity-cards/entity-cards.component.js +202 -71
  8. package/dist/lib/entity-cards/entity-cards.component.js.map +1 -1
  9. package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts +159 -16
  10. package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts.map +1 -1
  11. package/dist/lib/entity-data-grid/entity-data-grid.component.js +446 -147
  12. package/dist/lib/entity-data-grid/entity-data-grid.component.js.map +1 -1
  13. package/dist/lib/entity-data-grid/events/grid-events.js +67 -67
  14. package/dist/lib/entity-data-grid/events/grid-events.js.map +1 -1
  15. package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.d.ts +112 -8
  16. package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.d.ts.map +1 -1
  17. package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.js +245 -61
  18. package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.js.map +1 -1
  19. package/dist/lib/entity-viewer/entity-viewer.component.d.ts +6 -0
  20. package/dist/lib/entity-viewer/entity-viewer.component.d.ts.map +1 -1
  21. package/dist/lib/entity-viewer/entity-viewer.component.js +28 -9
  22. package/dist/lib/entity-viewer/entity-viewer.component.js.map +1 -1
  23. package/dist/lib/pill/pill.component.d.ts +13 -3
  24. package/dist/lib/pill/pill.component.d.ts.map +1 -1
  25. package/dist/lib/pill/pill.component.js +34 -10
  26. package/dist/lib/pill/pill.component.js.map +1 -1
  27. package/dist/lib/quick-save-dialog/quick-save-dialog.component.d.ts +29 -3
  28. package/dist/lib/quick-save-dialog/quick-save-dialog.component.d.ts.map +1 -1
  29. package/dist/lib/quick-save-dialog/quick-save-dialog.component.js +173 -114
  30. package/dist/lib/quick-save-dialog/quick-save-dialog.component.js.map +1 -1
  31. package/dist/lib/recycle-bin/recycle-bin.component.d.ts +4 -0
  32. package/dist/lib/recycle-bin/recycle-bin.component.d.ts.map +1 -1
  33. package/dist/lib/recycle-bin/recycle-bin.component.js +10 -2
  34. package/dist/lib/recycle-bin/recycle-bin.component.js.map +1 -1
  35. package/dist/lib/utils/highlight.util.d.ts +6 -0
  36. package/dist/lib/utils/highlight.util.d.ts.map +1 -1
  37. package/dist/lib/utils/highlight.util.js +23 -11
  38. package/dist/lib/utils/highlight.util.js.map +1 -1
  39. package/dist/lib/utils/record.util.d.ts +10 -0
  40. package/dist/lib/utils/record.util.d.ts.map +1 -1
  41. package/dist/lib/utils/record.util.js +20 -4
  42. package/dist/lib/utils/record.util.js.map +1 -1
  43. package/dist/lib/view-config-panel/view-config-panel.component.d.ts +17 -1
  44. package/dist/lib/view-config-panel/view-config-panel.component.d.ts.map +1 -1
  45. package/dist/lib/view-config-panel/view-config-panel.component.js +39 -6
  46. package/dist/lib/view-config-panel/view-config-panel.component.js.map +1 -1
  47. package/dist/lib/view-selector/view-selector.component.js +2 -2
  48. package/dist/lib/view-types/renderers/cards-view-renderer.component.d.ts +15 -3
  49. package/dist/lib/view-types/renderers/cards-view-renderer.component.d.ts.map +1 -1
  50. package/dist/lib/view-types/renderers/cards-view-renderer.component.js +33 -5
  51. package/dist/lib/view-types/renderers/cards-view-renderer.component.js.map +1 -1
  52. package/dist/lib/view-types/renderers/grid-view-renderer.component.d.ts +70 -2
  53. package/dist/lib/view-types/renderers/grid-view-renderer.component.d.ts.map +1 -1
  54. package/dist/lib/view-types/renderers/grid-view-renderer.component.js +155 -33
  55. package/dist/lib/view-types/renderers/grid-view-renderer.component.js.map +1 -1
  56. package/dist/lib/view-types/renderers/map-view-renderer.component.d.ts +16 -2
  57. package/dist/lib/view-types/renderers/map-view-renderer.component.d.ts.map +1 -1
  58. package/dist/lib/view-types/renderers/map-view-renderer.component.js +37 -9
  59. package/dist/lib/view-types/renderers/map-view-renderer.component.js.map +1 -1
  60. package/dist/lib/view-types/view-type.contracts.d.ts +8 -0
  61. package/dist/lib/view-types/view-type.contracts.d.ts.map +1 -1
  62. package/dist/lib/view-types/view-type.contracts.js.map +1 -1
  63. package/dist/lib/view-workspace/view-workspace.component.d.ts +243 -25
  64. package/dist/lib/view-workspace/view-workspace.component.d.ts.map +1 -1
  65. package/dist/lib/view-workspace/view-workspace.component.js +631 -180
  66. package/dist/lib/view-workspace/view-workspace.component.js.map +1 -1
  67. package/package.json +21 -20
@@ -1 +1 @@
1
- {"version":3,"file":"view-type.contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/view-types/view-type.contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-type.contracts.d.ts","sourceRoot":"","sources":["../../../src/lib/view-types/view-type.contracts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-type.contracts.js","sourceRoot":"","sources":["../../../src/lib/view-types/view-type.contracts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsQvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAgB,sBAAsB;IAKjC,kBAAkB,CAAiB;IAE5C;;;;OAIG;IACM,sBAAsB,GAAY,KAAK,CAAC;IAEjD;;;;OAIG;IACM,iBAAiB,GAAY,KAAK,CAAC;IAE5C;;;OAGG;IACH,cAAc,CAAC,OAAmB,EAAE,SAA6B;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAA6B;QACxD,mBAAmB;IACrB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,kFAAkF;IAClF,KAAK,aAAa,CAAC;AACrB,CAAC","sourcesContent":["import { Type, EventEmitter } from '@angular/core';\nimport { EntityInfo, IMetadataProvider } from '@memberjunction/core';\nimport { RegisterClass } from '@memberjunction/global';\n\n/**\n * View-Type Plugin Architecture — Contracts\n * -----------------------------------------\n * This file defines the framework-level contracts for the entity-viewer's pluggable\n * view-type system. A \"view type\" is a way of rendering a set of entity records — the\n * built-in ones being Grid, Cards, Timeline, and Map, with future additions like\n * Cluster and Tag Cloud.\n *\n * The design separates three concerns:\n * 1. {@link IViewTypeDescriptor} — metadata + availability + the component types to mount.\n * Descriptors are discovered at runtime via the {@link https MemberJunction ClassFactory}\n * keyed off the `DriverClass` stored in the `MJ: View Types` entity.\n * 2. {@link IViewRenderer} — the contract a renderer component honors so the host can\n * feed it data and listen for selection/open/config events uniformly.\n * 3. {@link IViewPropSheet} — the contract a configuration prop-sheet component honors.\n *\n * Because this lives in an Angular package, it is acceptable for the descriptor to reference\n * Angular's `Type<T>` (it points at the concrete component classes to instantiate).\n */\n\n/**\n * Framework-agnostic-ish descriptor for a single view type.\n *\n * A descriptor is the bridge between the `MJ: View Types` metadata row (which stores\n * the `DriverClass` name) and the concrete Angular components that actually render the\n * view and edit its configuration. Descriptors are registered with the ClassFactory via\n * `@RegisterClass(BaseViewTypeDescriptor, '<DriverClass>')` so they can be discovered by\n * name without a hard import from the host.\n */\nexport interface IViewTypeDescriptor {\n /**\n * Stable internal key for the view type — matches the `DriverClass` column on the\n * `MJ: View Types` entity and the `@RegisterClass` registration key\n * (e.g. \"GridViewType\", \"CardsViewType\").\n */\n readonly Name: string;\n\n /** User-facing label shown in the view-mode switcher (e.g. \"Grid\", \"Tag Cloud\"). */\n readonly DisplayName: string;\n\n /** Font Awesome icon class shown in the switcher (e.g. \"fa-solid fa-table\"). */\n readonly Icon: string;\n\n /**\n * The Angular component class that renders this view type. The host instantiates /\n * mounts this component and feeds it data per the {@link IViewRenderer} contract.\n */\n readonly RendererComponent: Type<unknown>;\n\n /**\n * Optional Angular component class for this view type's configuration prop-sheet\n * (honors {@link IViewPropSheet}). Undefined when the view type has no configurable\n * options.\n */\n readonly PropSheetComponent?: Type<unknown>;\n\n /**\n * When `true`, this view type's `config.gridState` is backed by the **canonical**\n * `UserView.GridState` column (the single, framework-wide store for a view's\n * columns / sort / filter / aggregates — also read by `MJUserViewEntity.Columns`,\n * the GraphQL data provider's field list, and export) rather than by an opaque\n * per-view-type blob in `DisplayState.viewTypeConfigs`.\n *\n * The container honors this by (a) seeding the renderer's `config.gridState` from\n * the canonical store and (b) routing the renderer's `configChanged.gridState`\n * back to it on persist. This keeps the grid, the config panel, the server query,\n * and export all reading/writing one source of truth. Defaults to `false`, so\n * non-grid view types (Cards/Timeline/Map) keep their opaque per-type config.\n */\n readonly UsesCanonicalGridState?: boolean;\n\n /**\n * When `true`, this view type ships its OWN in-view export affordance (e.g. the Grid renderer's\n * in-toolbar \"Export\" button + {@link IViewRenderer.exportRecords}). Hosts use this to decide\n * whether to render a FALLBACK export button for view types that DON'T (Cards / Map / Timeline),\n * so every view type can export without a duplicate button on the ones that already have one.\n * Defaults to `false`. This is read off the (synchronously-resolved) descriptor rather than the\n * mounted renderer instance, so it's correct the instant the active view type changes.\n */\n readonly ProvidesOwnExport?: boolean;\n\n /**\n * Predicate that decides whether this view type is available for a given entity.\n * For example, Timeline requires a date field; Map requires geocoding support.\n * Grid and Cards are always available.\n *\n * @param entity the entity the viewer is currently displaying\n * @param provider optional metadata provider (for multi-provider scenarios)\n */\n IsAvailableFor(entity: EntityInfo, provider?: IMetadataProvider): boolean;\n\n /**\n * Optional async hook to load any data this descriptor's {@link IsAvailableFor} predicate\n * depends on (e.g. the Cluster view type needs the set of entities that have an active\n * Entity Document with vectors). The host awaits this once — before computing availability —\n * so the synchronous predicate can read from a now-populated cache. Implementations should\n * be cheap/idempotent (typically `await SomeEngine.Instance.Config(false, ...)`). Omit when\n * availability is computable purely from the {@link EntityInfo} (Grid/Cards/Timeline/Map).\n *\n * @param provider optional metadata provider (for multi-provider scenarios)\n */\n EnsureAvailabilityData?(provider?: IMetadataProvider): Promise<void>;\n}\n\n/**\n * Contract honored by a view renderer component. The host binds these inputs and\n * subscribes to these outputs uniformly across all view types.\n *\n * @typeParam TConfig the shape of this view type's configuration object\n */\nexport interface IViewRenderer<TConfig = unknown> {\n /** The entity whose records are being rendered. */\n entity: EntityInfo | null;\n\n /** The records to render (already loaded/filtered by the host). */\n records: Record<string, unknown>[];\n\n /** Primary-key string of the currently selected record, if any. */\n selectedRecordId: string | null;\n\n /** Active filter text (for highlighting / client-side concerns). */\n filterText: string | null;\n\n /** View-type-specific configuration. */\n config: TConfig;\n\n /**\n * Optional: the metadata provider, handed to plug-ins that issue their own data calls\n * (multi-provider safety). Generic — not specific to any one view type.\n */\n provider?: IMetadataProvider | null;\n\n /**\n * Optional generic data-context the host supplies alongside {@link records}. These are\n * universal \"a view of records\" concepts (counts, current page, loading) — NOT specific to any\n * view type — so a renderer that paginates or shows a total can read them, and one that doesn't\n * simply ignores them. The host owns the actual data fetch; these describe its current result.\n */\n totalRecordCount?: number;\n /** One-based current page of {@link records} when the host is paginating. */\n page?: number;\n /** Page size the host is using. */\n pageSize?: number;\n /** Whether the host is currently (re)loading the record set. */\n isLoading?: boolean;\n\n /** Emitted when a record is selected (single click). Payload is the raw record object. */\n recordSelected: EventEmitter<unknown>;\n\n /**\n * Emitted when THIS entity's record should be opened (double-click / open). Payload is the raw\n * record. This is a NAVIGATION request — the only category of signal that legitimately bubbles\n * to the outer app (routing lives there). Everything else a view does (export, add-to-list,\n * delete, …) is self-contained in the plug-in via Generic dialogs and never bubbles up.\n */\n recordOpened: EventEmitter<unknown>;\n\n /**\n * Optional: NAVIGATION request to open a *related* record on a DIFFERENT entity (e.g. a\n * foreign-key drill-through in a grid cell). Bubbles to the outer app for routing. Generic —\n * the container forwards it without acting on it.\n */\n openRelatedRecordRequested?: EventEmitter<ViewRelatedRecordNavigation>;\n\n /**\n * Optional: NAVIGATION request to create a new record of the current entity (e.g. a grid's\n * \"New\" button) — opening the create form is a routing concern owned by the outer app. Bubbles\n * up; the container forwards it without acting on it.\n */\n createRecordRequested?: EventEmitter<void>;\n\n /**\n * Emitted when the renderer mutates its own opaque {@link config} (e.g. timeline date field,\n * grid columns/sort/widths, map render mode). The container persists the blob verbatim against\n * the active `ViewTypeID` and never inspects it. (Container ↔ plug-in coordination inside the\n * Generic layer — NOT a signal that drives the outer app.)\n */\n configChanged: EventEmitter<TConfig>;\n\n /**\n * Optional: ask the container to (re)load the record set differently. The ONLY data-access\n * channel a plug-in has, fully generic — the container honors the request (sort / page /\n * load-all) without knowing which plug-in asked or why. A grid emits sort/page; a map emits\n * `{ loadAll: true }`; a plug-in happy with the records it's given emits nothing. The container\n * owns the actual `RunView`; no per-view-type branching. (Container ↔ plug-in coordination —\n * NOT a signal that drives the outer app.)\n */\n dataRequest?: EventEmitter<ViewDataRequest>;\n\n /**\n * Optional: ask the host to open this view's configuration UI (e.g. the workspace's config\n * panel). Generic — every view type has configurable settings (the descriptor's\n * {@link IViewTypeDescriptor.PropSheetComponent}); a plug-in raises this when the user invokes\n * an in-renderer affordance for it (e.g. the grid's \"Manage Columns\" toolbar item). The\n * container forwards it to the host, which owns the config UI; no per-view-type branching.\n * (Container ↔ plug-in coordination — NOT a signal that drives the outer app.)\n */\n configureRequested?: EventEmitter<void>;\n\n /**\n * Optional IMPERATIVE export entry point. A renderer that owns a self-contained export\n * affordance (e.g. the grid's export dialog) may expose this so an external driver — the\n * host's programmatic API, ultimately the AI agent — can trigger an export of the current\n * record set WITHOUT going through the renderer's own toolbar UI. Renderers that don't\n * support export simply don't implement it (the host treats absence as \"not exportable\").\n *\n * This is NOT a navigation/UI-coordination signal — it's a direct method call the host makes\n * on the active renderer, mirroring how export is otherwise self-contained in the plug-in.\n *\n * @param format optional output format ('csv' | 'excel' | 'json'); the renderer picks a sensible\n * default (typically 'excel') when omitted.\n * @returns true when the export was initiated, false when it couldn't be (no data / unsupported).\n */\n exportRecords?(format?: 'csv' | 'excel' | 'json'): Promise<boolean>;\n}\n\n/**\n * A generic, view-type-agnostic request from a renderer for the host to change how it loads the\n * record set. Every field is optional; the host applies whatever is present. No field names a\n * specific view type — these are universal data-access concepts.\n */\nexport interface ViewDataRequest {\n /** Desired sort, applied to the host's RunView OrderBy. Empty/omitted clears sorting. */\n sort?: Array<{ field: string; direction: 'asc' | 'desc' }>;\n /** One-based page to load (for paginated views). */\n page?: number;\n /** Page size to load. */\n pageSize?: number;\n /** When true, the host loads the full result set (up to its safety cap) instead of paginating. */\n loadAll?: boolean;\n}\n\n/**\n * A NAVIGATION request to open a record on a (possibly different) entity — the generic payload\n * for {@link IViewRenderer.openRelatedRecordRequested}. Routing lives in the outer app, so this\n * is one of the few signals that legitimately bubbles up. The container forwards it untouched.\n */\nexport interface ViewRelatedRecordNavigation {\n /** The entity whose record should be opened. */\n entityName: string;\n /** The record's key — a composite-key string or the raw key value(s). Opaque to the container. */\n recordKey: unknown;\n}\n\n/**\n * Contract honored by a view-type configuration prop-sheet component.\n *\n * @typeParam TConfig the shape of the configuration object being edited\n */\nexport interface IViewPropSheet<TConfig = unknown> {\n /** The entity the configuration applies to. */\n entity: EntityInfo | null;\n\n /** The current configuration being edited. */\n config: TConfig;\n\n /** Emitted when the user changes the configuration. */\n configChange: EventEmitter<TConfig>;\n}\n\n/**\n * Abstract base class for all view-type descriptors.\n *\n * Concrete descriptors extend this and register themselves with the ClassFactory:\n *\n * ```typescript\n * @RegisterClass(BaseViewTypeDescriptor, 'GridViewType')\n * export class GridViewType extends BaseViewTypeDescriptor {\n * readonly Name = 'GridViewType';\n * readonly DisplayName = 'Grid';\n * readonly Icon = 'fa-solid fa-table';\n * readonly RendererComponent = EntityDataGridComponent;\n * IsAvailableFor(): boolean { return true; }\n * }\n * ```\n *\n * The {@link ViewTypeEngine} resolves descriptors by `DriverClass` name after\n * probing ClassFactory registrations, then `CreateInstance`. Unregistered keys\n * (e.g. a seeded TagCloud row) are omitted rather than falling back to this base.\n *\n * NOTE: This class is registered with the ClassFactory itself (via subclasses) and is\n * intentionally NOT decorated — only concrete subclasses carry `@RegisterClass`.\n */\nexport abstract class BaseViewTypeDescriptor implements IViewTypeDescriptor {\n abstract readonly Name: string;\n abstract readonly DisplayName: string;\n abstract readonly Icon: string;\n abstract readonly RendererComponent: Type<unknown>;\n readonly PropSheetComponent?: Type<unknown>;\n\n /**\n * Default: this view type uses its own opaque per-view-type config (stored in\n * `DisplayState.viewTypeConfigs`). Override to `true` in a view type that renders the\n * canonical grid columns (see {@link IViewTypeDescriptor.UsesCanonicalGridState}).\n */\n readonly UsesCanonicalGridState: boolean = false;\n\n /**\n * Default: this view type has no built-in export UI, so a host should provide a fallback Export\n * affordance. Override to `true` in a view type that ships its own export (see\n * {@link IViewTypeDescriptor.ProvidesOwnExport}).\n */\n readonly ProvidesOwnExport: boolean = false;\n\n /**\n * Default availability: available for every entity. Override in subclasses that have\n * requirements (e.g. Timeline needs a date field, Map needs geocoding).\n */\n IsAvailableFor(_entity: EntityInfo, _provider?: IMetadataProvider): boolean {\n return true;\n }\n\n /**\n * Default: nothing to preload. Override in subclasses whose availability predicate needs\n * async data (e.g. the Cluster view type loading which entities have Entity Documents).\n */\n async EnsureAvailabilityData(_provider?: IMetadataProvider): Promise<void> {\n // no-op by default\n }\n}\n\n/**\n * Tree-shaking guard. Force-references {@link RegisterClass} so bundlers don't drop the\n * decorator import in builds that only touch this contracts module. Concrete descriptor\n * modules each carry their own `@RegisterClass` and load guard, but this keeps the base\n * module self-consistent.\n */\nexport function LoadViewTypeContracts(): void {\n // no-op; presence prevents tree-shaking of this module's side-effect-free exports\n void RegisterClass;\n}\n"]}
1
+ {"version":3,"file":"view-type.contracts.js","sourceRoot":"","sources":["../../../src/lib/view-types/view-type.contracts.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA8QvD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAgB,sBAAsB;IAKjC,kBAAkB,CAAiB;IAE5C;;;;OAIG;IACM,sBAAsB,GAAY,KAAK,CAAC;IAEjD;;;;OAIG;IACM,iBAAiB,GAAY,KAAK,CAAC;IAE5C;;;OAGG;IACH,cAAc,CAAC,OAAmB,EAAE,SAA6B;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,sBAAsB,CAAC,SAA6B;QACxD,mBAAmB;IACrB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,kFAAkF;IAClF,KAAK,aAAa,CAAC;AACrB,CAAC","sourcesContent":["import { Type, EventEmitter } from '@angular/core';\nimport { EntityInfo, IMetadataProvider } from '@memberjunction/core';\nimport { ExportColumn } from '@memberjunction/export-engine';\nimport { RegisterClass } from '@memberjunction/global';\n\n/**\n * View-Type Plugin Architecture — Contracts\n * -----------------------------------------\n * This file defines the framework-level contracts for the entity-viewer's pluggable\n * view-type system. A \"view type\" is a way of rendering a set of entity records — the\n * built-in ones being Grid, Cards, Timeline, and Map, with future additions like\n * Cluster and Tag Cloud.\n *\n * The design separates three concerns:\n * 1. {@link IViewTypeDescriptor} — metadata + availability + the component types to mount.\n * Descriptors are discovered at runtime via the {@link https MemberJunction ClassFactory}\n * keyed off the `DriverClass` stored in the `MJ: View Types` entity.\n * 2. {@link IViewRenderer} — the contract a renderer component honors so the host can\n * feed it data and listen for selection/open/config events uniformly.\n * 3. {@link IViewPropSheet} — the contract a configuration prop-sheet component honors.\n *\n * Because this lives in an Angular package, it is acceptable for the descriptor to reference\n * Angular's `Type<T>` (it points at the concrete component classes to instantiate).\n */\n\n/**\n * Framework-agnostic-ish descriptor for a single view type.\n *\n * A descriptor is the bridge between the `MJ: View Types` metadata row (which stores\n * the `DriverClass` name) and the concrete Angular components that actually render the\n * view and edit its configuration. Descriptors are registered with the ClassFactory via\n * `@RegisterClass(BaseViewTypeDescriptor, '<DriverClass>')` so they can be discovered by\n * name without a hard import from the host.\n */\nexport interface IViewTypeDescriptor {\n /**\n * Stable internal key for the view type — matches the `DriverClass` column on the\n * `MJ: View Types` entity and the `@RegisterClass` registration key\n * (e.g. \"GridViewType\", \"CardsViewType\").\n */\n readonly Name: string;\n\n /** User-facing label shown in the view-mode switcher (e.g. \"Grid\", \"Tag Cloud\"). */\n readonly DisplayName: string;\n\n /** Font Awesome icon class shown in the switcher (e.g. \"fa-solid fa-table\"). */\n readonly Icon: string;\n\n /**\n * The Angular component class that renders this view type. The host instantiates /\n * mounts this component and feeds it data per the {@link IViewRenderer} contract.\n */\n readonly RendererComponent: Type<unknown>;\n\n /**\n * Optional Angular component class for this view type's configuration prop-sheet\n * (honors {@link IViewPropSheet}). Undefined when the view type has no configurable\n * options.\n */\n readonly PropSheetComponent?: Type<unknown>;\n\n /**\n * When `true`, this view type's `config.gridState` is backed by the **canonical**\n * `UserView.GridState` column (the single, framework-wide store for a view's\n * columns / sort / filter / aggregates — also read by `MJUserViewEntity.Columns`,\n * the GraphQL data provider's field list, and export) rather than by an opaque\n * per-view-type blob in `DisplayState.viewTypeConfigs`.\n *\n * The container honors this by (a) seeding the renderer's `config.gridState` from\n * the canonical store and (b) routing the renderer's `configChanged.gridState`\n * back to it on persist. This keeps the grid, the config panel, the server query,\n * and export all reading/writing one source of truth. Defaults to `false`, so\n * non-grid view types (Cards/Timeline/Map) keep their opaque per-type config.\n */\n readonly UsesCanonicalGridState?: boolean;\n\n /**\n * When `true`, this view type ships its OWN in-view export affordance (e.g. the Grid renderer's\n * in-toolbar \"Export\" button + {@link IViewRenderer.exportRecords}). Hosts use this to decide\n * whether to render a FALLBACK export button for view types that DON'T (Cards / Map / Timeline),\n * so every view type can export without a duplicate button on the ones that already have one.\n * Defaults to `false`. This is read off the (synchronously-resolved) descriptor rather than the\n * mounted renderer instance, so it's correct the instant the active view type changes.\n */\n readonly ProvidesOwnExport?: boolean;\n\n /**\n * Predicate that decides whether this view type is available for a given entity.\n * For example, Timeline requires a date field; Map requires geocoding support.\n * Grid and Cards are always available.\n *\n * @param entity the entity the viewer is currently displaying\n * @param provider optional metadata provider (for multi-provider scenarios)\n */\n IsAvailableFor(entity: EntityInfo, provider?: IMetadataProvider): boolean;\n\n /**\n * Optional async hook to load any data this descriptor's {@link IsAvailableFor} predicate\n * depends on (e.g. the Cluster view type needs the set of entities that have an active\n * Entity Document with vectors). The host awaits this once — before computing availability —\n * so the synchronous predicate can read from a now-populated cache. Implementations should\n * be cheap/idempotent (typically `await SomeEngine.Instance.Config(false, ...)`). Omit when\n * availability is computable purely from the {@link EntityInfo} (Grid/Cards/Timeline/Map).\n *\n * @param provider optional metadata provider (for multi-provider scenarios)\n */\n EnsureAvailabilityData?(provider?: IMetadataProvider): Promise<void>;\n}\n\n/**\n * Contract honored by a view renderer component. The host binds these inputs and\n * subscribes to these outputs uniformly across all view types.\n *\n * @typeParam TConfig the shape of this view type's configuration object\n */\nexport interface IViewRenderer<TConfig = unknown> {\n /** The entity whose records are being rendered. */\n entity: EntityInfo | null; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** The records to render (already loaded/filtered by the host). */\n records: Record<string, unknown>[]; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** Primary-key string of the currently selected record, if any. */\n selectedRecordId: string | null; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** Active filter text (for highlighting / client-side concerns). */\n filterText: string | null; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** View-type-specific configuration. */\n config: TConfig; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: the metadata provider, handed to plug-ins that issue their own data calls\n * (multi-provider safety). Generic — not specific to any one view type.\n */\n provider?: IMetadataProvider | null; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional generic data-context the host supplies alongside {@link records}. These are\n * universal \"a view of records\" concepts (counts, current page, loading) — NOT specific to any\n * view type — so a renderer that paginates or shows a total can read them, and one that doesn't\n * simply ignores them. The host owns the actual data fetch; these describe its current result.\n */\n totalRecordCount?: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n /** One-based current page of {@link records} when the host is paginating. */\n page?: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n /** Page size the host is using. */\n pageSize?: number; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n /** Whether the host is currently (re)loading the record set. */\n isLoading?: boolean; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** Emitted when a record is selected (single click). Payload is the raw record object. */\n recordSelected: EventEmitter<unknown>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Emitted when THIS entity's record should be opened (double-click / open). Payload is the raw\n * record. This is a NAVIGATION request — the only category of signal that legitimately bubbles\n * to the outer app (routing lives there). Everything else a view does (export, add-to-list,\n * delete, …) is self-contained in the plug-in via Generic dialogs and never bubbles up.\n */\n recordOpened: EventEmitter<unknown>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: NAVIGATION request to open a *related* record on a DIFFERENT entity (e.g. a\n * foreign-key drill-through in a grid cell). Bubbles to the outer app for routing. Generic —\n * the container forwards it without acting on it.\n */\n openRelatedRecordRequested?: EventEmitter<ViewRelatedRecordNavigation>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: NAVIGATION request to create a new record of the current entity (e.g. a grid's\n * \"New\" button) — opening the create form is a routing concern owned by the outer app. Bubbles\n * up; the container forwards it without acting on it.\n */\n createRecordRequested?: EventEmitter<void>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Emitted when the renderer mutates its own opaque {@link config} (e.g. timeline date field,\n * grid columns/sort/widths, map render mode). The container persists the blob verbatim against\n * the active `ViewTypeID` and never inspects it. (Container ↔ plug-in coordination inside the\n * Generic layer — NOT a signal that drives the outer app.)\n */\n configChanged: EventEmitter<TConfig>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: ask the container to (re)load the record set differently. The ONLY data-access\n * channel a plug-in has, fully generic — the container honors the request (sort / page /\n * load-all) without knowing which plug-in asked or why. A grid emits sort/page; a map emits\n * `{ loadAll: true }`; a plug-in happy with the records it's given emits nothing. The container\n * owns the actual `RunView`; no per-view-type branching. (Container ↔ plug-in coordination —\n * NOT a signal that drives the outer app.)\n */\n dataRequest?: EventEmitter<ViewDataRequest>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: ask the host to open this view's configuration UI (e.g. the workspace's config\n * panel). Generic — every view type has configurable settings (the descriptor's\n * {@link IViewTypeDescriptor.PropSheetComponent}); a plug-in raises this when the user invokes\n * an in-renderer affordance for it (e.g. the grid's \"Manage Columns\" toolbar item). The\n * container forwards it to the host, which owns the config UI; no per-view-type branching.\n * (Container ↔ plug-in coordination — NOT a signal that drives the outer app.)\n */\n configureRequested?: EventEmitter<void>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional IMPERATIVE export entry point. A renderer that owns a self-contained export\n * affordance (e.g. the grid's export dialog) may expose this so an external driver — the\n * host's programmatic API, ultimately the AI agent — can trigger an export of the current\n * record set WITHOUT going through the renderer's own toolbar UI. Renderers that don't\n * support export simply don't implement it (the host treats absence as \"not exportable\").\n *\n * This is NOT a navigation/UI-coordination signal — it's a direct method call the host makes\n * on the active renderer, mirroring how export is otherwise self-contained in the plug-in.\n *\n * @param format optional output format ('csv' | 'excel' | 'json'); the renderer picks a sensible\n * default (typically 'excel') when omitted.\n * @returns true when the export was initiated, false when it couldn't be (no data / unsupported).\n */\n exportRecords?(format?: 'csv' | 'excel' | 'json'): Promise<boolean>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /**\n * Optional: the columns this renderer is showing, in on-screen order and with on-screen headers.\n * A host that exports on the renderer's behalf (the workspace toolbar's Export) uses this so its\n * export matches the screen. Renderers without a column layout (Cards, Map, Timeline) omit it and\n * the host falls back to the view's saved columns.\n */\n GetExportColumns?(): ExportColumn[];\n}\n\n/**\n * A generic, view-type-agnostic request from a renderer for the host to change how it loads the\n * record set. Every field is optional; the host applies whatever is present. No field names a\n * specific view type — these are universal data-access concepts.\n */\nexport interface ViewDataRequest {\n /** Desired sort, applied to the host's RunView OrderBy. Empty/omitted clears sorting. */\n sort?: Array<{ field: string; direction: 'asc' | 'desc' }>;\n /** One-based page to load (for paginated views). */\n page?: number;\n /** Page size to load. */\n pageSize?: number;\n /** When true, the host loads the full result set (up to its safety cap) instead of paginating. */\n loadAll?: boolean;\n}\n\n/**\n * A NAVIGATION request to open a record on a (possibly different) entity — the generic payload\n * for {@link IViewRenderer.openRelatedRecordRequested}. Routing lives in the outer app, so this\n * is one of the few signals that legitimately bubbles up. The container forwards it untouched.\n */\nexport interface ViewRelatedRecordNavigation {\n /** The entity whose record should be opened. */\n entityName: string;\n /** The record's key — a composite-key string or the raw key value(s). Opaque to the container. */\n recordKey: unknown;\n}\n\n/**\n * Contract honored by a view-type configuration prop-sheet component.\n *\n * @typeParam TConfig the shape of the configuration object being edited\n */\nexport interface IViewPropSheet<TConfig = unknown> {\n /** The entity the configuration applies to. */\n entity: EntityInfo | null; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** The current configuration being edited. */\n config: TConfig; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n\n /** Emitted when the user changes the configuration. */\n configChange: EventEmitter<TConfig>; // case-violation-ok-legacy-back-compat: the type is named in an exported signature, so consumers build object literals against it; an interface has no runtime carrier for a stub\n}\n\n/**\n * Abstract base class for all view-type descriptors.\n *\n * Concrete descriptors extend this and register themselves with the ClassFactory:\n *\n * ```typescript\n * @RegisterClass(BaseViewTypeDescriptor, 'GridViewType')\n * export class GridViewType extends BaseViewTypeDescriptor {\n * readonly Name = 'GridViewType';\n * readonly DisplayName = 'Grid';\n * readonly Icon = 'fa-solid fa-table';\n * readonly RendererComponent = EntityDataGridComponent;\n * IsAvailableFor(): boolean { return true; }\n * }\n * ```\n *\n * The {@link ViewTypeEngine} resolves descriptors by `DriverClass` name after\n * probing ClassFactory registrations, then `CreateInstance`. Unregistered keys\n * (e.g. a seeded TagCloud row) are omitted rather than falling back to this base.\n *\n * NOTE: This class is registered with the ClassFactory itself (via subclasses) and is\n * intentionally NOT decorated — only concrete subclasses carry `@RegisterClass`.\n */\nexport abstract class BaseViewTypeDescriptor implements IViewTypeDescriptor {\n abstract readonly Name: string;\n abstract readonly DisplayName: string;\n abstract readonly Icon: string;\n abstract readonly RendererComponent: Type<unknown>;\n readonly PropSheetComponent?: Type<unknown>;\n\n /**\n * Default: this view type uses its own opaque per-view-type config (stored in\n * `DisplayState.viewTypeConfigs`). Override to `true` in a view type that renders the\n * canonical grid columns (see {@link IViewTypeDescriptor.UsesCanonicalGridState}).\n */\n readonly UsesCanonicalGridState: boolean = false;\n\n /**\n * Default: this view type has no built-in export UI, so a host should provide a fallback Export\n * affordance. Override to `true` in a view type that ships its own export (see\n * {@link IViewTypeDescriptor.ProvidesOwnExport}).\n */\n readonly ProvidesOwnExport: boolean = false;\n\n /**\n * Default availability: available for every entity. Override in subclasses that have\n * requirements (e.g. Timeline needs a date field, Map needs geocoding).\n */\n IsAvailableFor(_entity: EntityInfo, _provider?: IMetadataProvider): boolean {\n return true;\n }\n\n /**\n * Default: nothing to preload. Override in subclasses whose availability predicate needs\n * async data (e.g. the Cluster view type loading which entities have Entity Documents).\n */\n async EnsureAvailabilityData(_provider?: IMetadataProvider): Promise<void> {\n // no-op by default\n }\n}\n\n/**\n * Tree-shaking guard. Force-references {@link RegisterClass} so bundlers don't drop the\n * decorator import in builds that only touch this contracts module. Concrete descriptor\n * modules each carry their own `@RegisterClass` and load guard, but this keeps the base\n * module self-consistent.\n */\nexport function LoadViewTypeContracts(): void {\n // no-op; presence prevents tree-shaking of this module's side-effect-free exports\n void RegisterClass;\n}\n"]}
@@ -230,57 +230,163 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
230
230
  /** Reference to the config panel (for building summaries + canEdit checks). */
231
231
  protected viewConfigPanelRef?: ViewConfigPanelComponent;
232
232
  /** The currently selected view entity (null = the default/unsaved view). */
233
- currentViewEntity: MJUserViewEntityExtended | null;
233
+ CurrentViewEntity: MJUserViewEntityExtended | null;
234
+ /** @deprecated Use {@link CurrentViewEntity}. */
235
+ get currentViewEntity(): MJUserViewEntityExtended | null;
236
+ /** @deprecated Use {@link CurrentViewEntity}. */
237
+ set currentViewEntity(value: MJUserViewEntityExtended | null);
234
238
  /** The currently selected view ID (null = default view). */
235
- selectedViewId: string | null;
239
+ SelectedViewId: string | null;
240
+ /** @deprecated Use {@link SelectedViewId}. */
241
+ get selectedViewId(): string | null;
242
+ /** @deprecated Use {@link SelectedViewId}. */
243
+ set selectedViewId(value: string | null);
236
244
  /** Live grid state (column widths / order / sort / aggregates) reflecting user interaction. */
237
- currentGridState: ViewGridState | null;
245
+ CurrentGridState: ViewGridState | null;
246
+ /** @deprecated Use {@link CurrentGridState}. */
247
+ get currentGridState(): ViewGridState | null;
248
+ /** @deprecated Use {@link CurrentGridState}. */
249
+ set currentGridState(value: ViewGridState | null);
238
250
  /** Whether the current view has unsaved modifications. */
239
- viewModified: boolean;
251
+ ViewModified: boolean;
252
+ /** @deprecated Use {@link ViewModified}. */
253
+ get viewModified(): boolean;
254
+ /** @deprecated Use {@link ViewModified}. */
255
+ set viewModified(value: boolean);
240
256
  /** The current free-text filter. */
241
257
  filterText: string;
242
258
  /** The currently selected record's composite-key string (for grid highlight). */
243
259
  selectedRecordId: string | null;
244
260
  /** Records loaded by the viewer, kept for config-panel sample data. */
245
- loadedRecords: Record<string, unknown>[];
261
+ LoadedRecords: Record<string, unknown>[];
262
+ /** @deprecated Use {@link LoadedRecords}. */
263
+ get loadedRecords(): Record<string, unknown>[];
264
+ /** @deprecated Use {@link LoadedRecords}. */
265
+ set loadedRecords(value: Record<string, unknown>[]);
246
266
  /** Whether a save operation is in progress (drives the saving spinners). */
247
- isSavingView: boolean;
267
+ IsSavingView: boolean;
268
+ /** @deprecated Use {@link IsSavingView}. */
269
+ get isSavingView(): boolean;
270
+ /** @deprecated Use {@link IsSavingView}. */
271
+ set isSavingView(value: boolean);
248
272
  /** Whether the slide-in config panel is open. */
249
- isConfigPanelOpen: boolean;
273
+ IsConfigPanelOpen: boolean;
274
+ /** @deprecated Use {@link IsConfigPanelOpen}. */
275
+ get isConfigPanelOpen(): boolean;
276
+ /** @deprecated Use {@link IsConfigPanelOpen}. */
277
+ set isConfigPanelOpen(value: boolean);
250
278
  /** Whether the quick-save dialog is open. */
251
- showQuickSaveDialog: boolean;
279
+ ShowQuickSaveDialog: boolean;
280
+ /** @deprecated Use {@link ShowQuickSaveDialog}. */
281
+ get showQuickSaveDialog(): boolean;
282
+ /** @deprecated Use {@link ShowQuickSaveDialog}. */
283
+ set showQuickSaveDialog(value: boolean);
252
284
  /** Whether the duplicate-view dialog is open. */
253
- showDuplicateDialog: boolean;
285
+ ShowDuplicateDialog: boolean;
286
+ /** @deprecated Use {@link ShowDuplicateDialog}. */
287
+ get showDuplicateDialog(): boolean;
288
+ /** @deprecated Use {@link ShowDuplicateDialog}. */
289
+ set showDuplicateDialog(value: boolean);
254
290
  /** Whether the shared-view warning dialog is open. */
255
- showSharedViewWarning: boolean;
291
+ ShowSharedViewWarning: boolean;
292
+ /** @deprecated Use {@link ShowSharedViewWarning}. */
293
+ get showSharedViewWarning(): boolean;
294
+ /** @deprecated Use {@link ShowSharedViewWarning}. */
295
+ set showSharedViewWarning(value: boolean);
256
296
  /** Whether the config panel opens in "save as new" mode. */
257
- defaultSaveAsNew: boolean;
297
+ DefaultSaveAsNew: boolean;
298
+ /** @deprecated Use {@link DefaultSaveAsNew}. */
299
+ get defaultSaveAsNew(): boolean;
300
+ /** @deprecated Use {@link DefaultSaveAsNew}. */
301
+ set defaultSaveAsNew(value: boolean);
258
302
  /** Summary shown in the quick-save dialog. */
259
- quickSaveSummary: ViewConfigSummary | null;
303
+ QuickSaveSummary: ViewConfigSummary | null;
304
+ /** @deprecated Use {@link QuickSaveSummary}. */
305
+ get quickSaveSummary(): ViewConfigSummary | null;
306
+ /** @deprecated Use {@link QuickSaveSummary}. */
307
+ set quickSaveSummary(value: ViewConfigSummary | null);
308
+ /**
309
+ * Name pre-filled in the quick-save dialog when it opens as a name prompt for a default-view
310
+ * Save that carries a filter (see {@link OnSaveDefaultViewSettings}). Empty for every other
311
+ * quick-save, which keeps the field blank as before.
312
+ */
313
+ QuickSaveSuggestedName: string;
314
+ /**
315
+ * The config-panel save staged while the user names the view it is being promoted into.
316
+ * Set only when a Save on the default (unsaved) view carries a filter; consumed by
317
+ * {@link executeQuickSave}, which merges it with the name the dialog collects.
318
+ */
319
+ private pendingDefaultViewSave;
260
320
  /** Summary shown in the duplicate-view dialog. */
261
- duplicateSummary: ViewConfigSummary | null;
321
+ DuplicateSummary: ViewConfigSummary | null;
322
+ /** @deprecated Use {@link DuplicateSummary}. */
323
+ get duplicateSummary(): ViewConfigSummary | null;
324
+ /** @deprecated Use {@link DuplicateSummary}. */
325
+ set duplicateSummary(value: ViewConfigSummary | null);
262
326
  /** Source view name shown in the duplicate-view dialog. */
263
- duplicateSourceViewName: string;
327
+ DuplicateSourceViewName: string;
328
+ /** @deprecated Use {@link DuplicateSourceViewName}. */
329
+ get duplicateSourceViewName(): string;
330
+ /** @deprecated Use {@link DuplicateSourceViewName}. */
331
+ set duplicateSourceViewName(value: string);
264
332
  /** The view ID being duplicated. */
265
333
  private duplicateTargetViewId;
266
334
  /** A quick-save event held while the shared-view warning is shown. */
267
335
  private pendingQuickSaveEvent;
268
336
  /** Pre-populated name carried from quick-save dialog into the config panel. */
269
- pendingNewViewName: string;
337
+ PendingNewViewName: string;
338
+ /** @deprecated Use {@link PendingNewViewName}. */
339
+ get pendingNewViewName(): string;
340
+ /** @deprecated Use {@link PendingNewViewName}. */
341
+ set pendingNewViewName(value: string);
270
342
  /** Pre-populated description carried from quick-save dialog into the config panel. */
271
- pendingNewViewDescription: string;
343
+ PendingNewViewDescription: string;
344
+ /** @deprecated Use {@link PendingNewViewDescription}. */
345
+ get pendingNewViewDescription(): string;
346
+ /** @deprecated Use {@link PendingNewViewDescription}. */
347
+ set pendingNewViewDescription(value: string);
272
348
  /** Pre-populated sharing preference carried from quick-save dialog into the config panel. */
273
- pendingNewViewIsShared: boolean;
349
+ PendingNewViewIsShared: boolean;
350
+ /** @deprecated Use {@link PendingNewViewIsShared}. */
351
+ get pendingNewViewIsShared(): boolean;
352
+ /** @deprecated Use {@link PendingNewViewIsShared}. */
353
+ set pendingNewViewIsShared(value: boolean);
354
+ /** Traditional filter carried from quick-save dialog back into the config panel. */
355
+ PendingNewViewFilterState: CompositeFilterDescriptor | null;
356
+ /** Smart-filter toggle carried from quick-save dialog back into the config panel. */
357
+ PendingNewViewSmartFilterEnabled: boolean;
358
+ /** Smart-filter prompt carried from quick-save dialog back into the config panel. */
359
+ PendingNewViewSmartFilterPrompt: string;
274
360
  /** Whether the full-width filter dialog is open. */
275
- isFilterDialogOpen: boolean;
361
+ IsFilterDialogOpen: boolean;
362
+ /** @deprecated Use {@link IsFilterDialogOpen}. */
363
+ get isFilterDialogOpen(): boolean;
364
+ /** @deprecated Use {@link IsFilterDialogOpen}. */
365
+ set isFilterDialogOpen(value: boolean);
276
366
  /** The filter state currently being edited in the filter dialog. */
277
- filterDialogState: CompositeFilterDescriptor | null;
367
+ FilterDialogState: CompositeFilterDescriptor | null;
368
+ /** @deprecated Use {@link FilterDialogState}. */
369
+ get filterDialogState(): CompositeFilterDescriptor | null;
370
+ /** @deprecated Use {@link FilterDialogState}. */
371
+ set filterDialogState(value: CompositeFilterDescriptor | null);
278
372
  /** The filter fields available in the filter dialog. */
279
- filterDialogFields: FilterFieldInfo[];
373
+ FilterDialogFields: FilterFieldInfo[];
374
+ /** @deprecated Use {@link FilterDialogFields}. */
375
+ get filterDialogFields(): FilterFieldInfo[];
376
+ /** @deprecated Use {@link FilterDialogFields}. */
377
+ set filterDialogFields(value: FilterFieldInfo[]);
280
378
  constructor(cdr: ChangeDetectorRef);
281
379
  /** Controls the workspace-level export dialog (the same generic dialog the grid uses). */
282
- showExportDialog: boolean;
283
- exportDialogConfig: ExportDialogConfig | null;
380
+ ShowExportDialog: boolean;
381
+ /** @deprecated Use {@link ShowExportDialog}. */
382
+ get showExportDialog(): boolean;
383
+ /** @deprecated Use {@link ShowExportDialog}. */
384
+ set showExportDialog(value: boolean);
385
+ ExportDialogConfig: ExportDialogConfig | null;
386
+ /** @deprecated Use {@link ExportDialogConfig}. */
387
+ get exportDialogConfig(): ExportDialogConfig | null;
388
+ /** @deprecated Use {@link ExportDialogConfig}. */
389
+ set exportDialogConfig(value: ExportDialogConfig | null);
284
390
  /**
285
391
  * Handles the toolbar's Export button (the `<mj-view-selector>` `ExportRequested` output). This is
286
392
  * the always-visible, view-type-agnostic export for the workspace — previously the event wasn't
@@ -290,10 +396,21 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
290
396
  * options. Because the dialog only needs data + columns (it has no view-type dependency), this works
291
397
  * identically for Grid, Cards, Map and Timeline. Never fails silently — every path notifies.
292
398
  */
399
+ OnExportRequested(): Promise<void>;
400
+ /** @deprecated Use {@link OnExportRequested}. */
293
401
  onExportRequested(): Promise<void>;
294
402
  /** Closes the workspace export dialog (the dialog performs the export + download itself). */
403
+ OnExportDialogClosed(_result: ExportDialogResult): void;
404
+ /** @deprecated Use {@link OnExportDialogClosed}. */
295
405
  onExportDialogClosed(_result: ExportDialogResult): void;
296
- /** Columns to export — from the active grid state, else the view's columns, else the entity fields. */
406
+ /**
407
+ * Columns to export: what the active renderer shows on screen (the grid), else the view's saved
408
+ * columns, else the entity fields. The fallbacks apply the grid's own rules, so Cards, Map and
409
+ * Timeline export the columns a grid of this view would show: saved settings are sorted by
410
+ * `orderIndex`, headed by the user's rename, resolved to the entity's field spelling (the export
411
+ * engine reads each row by that key), and dropped when the field no longer exists; fields the
412
+ * user is denied read access to are left out.
413
+ */
297
414
  private buildExportColumns;
298
415
  private buildExportFileName;
299
416
  /** Initializes the workspace and loads the per-user default grid state for the entity. */
@@ -309,6 +426,11 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
309
426
  * + persistence). The viewer's own header switcher is suppressed via Config, so this is the
310
427
  * single switcher in the workspace.
311
428
  */
429
+ OnToolbarViewTypeSelected(event: {
430
+ viewTypeId: string;
431
+ driverClass: string;
432
+ }): void;
433
+ /** @deprecated Use {@link OnToolbarViewTypeSelected}. */
312
434
  onToolbarViewTypeSelected(event: {
313
435
  viewTypeId: string;
314
436
  driverClass: string;
@@ -318,43 +440,69 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
318
440
  * switcher's active highlight. Safe to read in the template — it reflects the viewer's own
319
441
  * resolved state rather than driving it.
320
442
  */
443
+ get ActiveViewTypeId(): string | null;
444
+ /** @deprecated Use {@link ActiveViewTypeId}. */
321
445
  get activeViewTypeId(): string | null;
322
446
  /**
323
447
  * The Config forwarded to the inner viewer. Merges the host-supplied {@link ViewerConfig} but
324
448
  * always forces `showViewModeToggle: false` so the view-type switcher appears only once — in the
325
449
  * workspace toolbar, not duplicated in the viewer's own header.
326
450
  */
451
+ get InnerViewerConfig(): Partial<EntityViewerConfig>;
452
+ /** @deprecated Use {@link InnerViewerConfig}. */
327
453
  get innerViewerConfig(): Partial<EntityViewerConfig>;
328
454
  /**
329
455
  * Handle a view selection from the selector dropdown. Applies the view's grid state and filter,
330
456
  * resets the modified flag, and notifies the host. (Generalized from DataExplorer.onViewSelected.)
331
457
  */
458
+ OnViewSelected(event: ViewSelectedEvent): void;
459
+ /** @deprecated Use {@link OnViewSelected}. */
332
460
  onViewSelected(event: ViewSelectedEvent): void;
333
461
  /** Handle filter text change from the viewer — re-emit so the host can sync its filter box / URL. */
462
+ OnFilterTextChanged(filterText: string): void;
463
+ /** @deprecated Use {@link OnFilterTextChanged}. */
334
464
  onFilterTextChanged(filterText: string): void;
335
465
  /** Track loaded records so the config panel has sample data, and re-emit the full event. */
466
+ OnDataLoaded(event: DataLoadedEvent): void;
467
+ /** @deprecated Use {@link OnDataLoaded}. */
336
468
  onDataLoaded(event: DataLoadedEvent): void;
337
469
  /** Re-emit the inner viewer's filtered-count change for the host. */
470
+ OnFilteredCountChanged(event: FilteredCountChangedEvent): void;
471
+ /** @deprecated Use {@link OnFilteredCountChanged}. */
338
472
  onFilteredCountChanged(event: FilteredCountChangedEvent): void;
339
473
  /** Handle a record single-click — track selection and re-emit for the host. */
474
+ OnRecordSelected(event: RecordSelectedEvent): void;
475
+ /** @deprecated Use {@link OnRecordSelected}. */
340
476
  onRecordSelected(event: RecordSelectedEvent): void;
341
477
  /** Handle a record open (double-click) — emit for the host to route to the record. */
478
+ OnRecordOpened(event: RecordOpenedEvent): void;
479
+ /** @deprecated Use {@link OnRecordOpened}. */
342
480
  onRecordOpened(event: RecordOpenedEvent): void;
343
481
  /**
344
482
  * Handle a plug-in renderer's request (via the inner viewer) to open a related record on a
345
483
  * (possibly different) entity — re-emit for the host to route.
346
484
  */
485
+ OnOpenRelatedRecordRequested(nav: ViewRelatedRecordNavigation): void;
486
+ /** @deprecated Use {@link OnOpenRelatedRecordRequested}. */
347
487
  onOpenRelatedRecordRequested(nav: ViewRelatedRecordNavigation): void;
348
488
  /**
349
489
  * Handle a plug-in renderer's request (via the inner viewer) to create a new record of the
350
490
  * current entity (e.g. a grid's "New" button) — re-emit for the host to open the form.
351
491
  */
492
+ OnCreateRecordRequested(): void;
493
+ /** @deprecated Use {@link OnCreateRecordRequested}. */
352
494
  onCreateRecordRequested(): void;
353
495
  /** Handle the selector's "open in tab" request — emit for the host to route. */
496
+ OnOpenInTabRequested(viewId: string): void;
497
+ /** @deprecated Use {@link OnOpenInTabRequested}. */
354
498
  onOpenInTabRequested(viewId: string): void;
355
499
  /** Handle the selector's "create new record" request — emit for the host. */
500
+ OnCreateNewRecordRequested(): void;
501
+ /** @deprecated Use {@link OnCreateNewRecordRequested}. */
356
502
  onCreateNewRecordRequested(): void;
357
503
  /** Handle the selector's "configure view" request — open the config panel. */
504
+ OnConfigureViewRequested(): void;
505
+ /** @deprecated Use {@link OnConfigureViewRequested}. */
358
506
  onConfigureViewRequested(): void;
359
507
  /** Live pagination/sort snapshot from the inner viewer, or null when not mounted. */
360
508
  GetGridState(): {
@@ -388,26 +536,42 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
388
536
  */
389
537
  ExportRecords(format?: 'csv' | 'excel' | 'json'): Promise<boolean>;
390
538
  /** Handle the selector's "save view" request — open the config panel in the requested mode. */
539
+ OnSaveViewRequested(event: SaveViewRequestedEvent): void;
540
+ /** @deprecated Use {@link OnSaveViewRequested}. */
391
541
  onSaveViewRequested(event: SaveViewRequestedEvent): void;
392
542
  /** Close the config panel and clear any pending new-view carry-over state. */
543
+ OnCloseConfigPanel(): void;
544
+ /** @deprecated Use {@link OnCloseConfigPanel}. */
393
545
  onCloseConfigPanel(): void;
394
546
  /** Reset the carry-over state used when continuing a new-view flow into the config panel. */
395
547
  private clearPendingNewViewState;
396
548
  /** Open the full-width filter dialog from the config panel's request. */
549
+ OnOpenFilterDialogRequest(event: {
550
+ filterState: CompositeFilterDescriptor;
551
+ filterFields: FilterFieldInfo[];
552
+ }): void;
553
+ /** @deprecated Use {@link OnOpenFilterDialogRequest}. */
397
554
  onOpenFilterDialogRequest(event: {
398
555
  filterState: CompositeFilterDescriptor;
399
556
  filterFields: FilterFieldInfo[];
400
557
  }): void;
401
558
  /** Close the filter dialog. */
559
+ OnCloseFilterDialog(): void;
560
+ /** @deprecated Use {@link OnCloseFilterDialog}. */
402
561
  onCloseFilterDialog(): void;
403
562
  /** Apply a filter from the dialog — the config panel picks it up via `externalFilterState`. */
563
+ OnFilterApplied(filter: CompositeFilterDescriptor): void;
564
+ /** @deprecated Use {@link OnFilterApplied}. */
404
565
  onFilterApplied(filter: CompositeFilterDescriptor): void;
405
566
  /**
406
567
  * Handle a save from the config panel. When {@link AutoSaveView}, persists the view itself
407
568
  * (create-new or update) via the BaseEntity; otherwise emits {@link SaveViewRequested} for the host.
408
569
  * (Faithful generalization of DataExplorer.onSaveView, minus routing/state-service/notifications.)
570
+ * Resolves `true` once the view is saved (or handed to the host), `false` if it was not.
409
571
  */
410
- onSaveView(event: ViewSaveEvent): Promise<void>;
572
+ OnSaveView(event: ViewSaveEvent): Promise<boolean>;
573
+ /** @deprecated Use {@link OnSaveView}. */
574
+ onSaveView(event: ViewSaveEvent): Promise<boolean>;
411
575
  /**
412
576
  * Create and persist a brand-new view from the save event. Fires the cancelable
413
577
  * {@link BeforeViewSave} before saving and {@link AfterViewSave} after success.
@@ -423,37 +587,67 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
423
587
  * persists to `UserInfoEngine`; otherwise emits {@link SaveDefaultsRequested}.
424
588
  * (Generalized from DataExplorer.onSaveDefaultViewSettings.)
425
589
  */
590
+ OnSaveDefaultViewSettings(event: ViewSaveEvent): Promise<void>;
591
+ /** @deprecated Use {@link OnSaveDefaultViewSettings}. */
426
592
  onSaveDefaultViewSettings(event: ViewSaveEvent): Promise<void>;
427
593
  /**
428
594
  * Handle a delete from the config panel. When {@link AutoSaveView}, persists the delete itself
429
595
  * (firing cancelable {@link BeforeViewDelete} / notification {@link AfterViewDelete}); otherwise
430
596
  * emits {@link DeleteViewRequested}. (Generalized from DataExplorer.onDeleteView.)
431
597
  */
598
+ OnDeleteView(): Promise<void>;
599
+ /** @deprecated Use {@link OnDeleteView}. */
432
600
  onDeleteView(): Promise<void>;
433
601
  /**
434
602
  * Handle a quick-save request from the selector (F-001). Builds a summary from the config panel
435
603
  * and opens the quick-save dialog. (Generalized from DataExplorer.onQuickSaveRequested.)
436
604
  */
605
+ OnQuickSaveRequested(saveAsNew: boolean): void;
606
+ /** @deprecated Use {@link OnQuickSaveRequested}. */
437
607
  onQuickSaveRequested(saveAsNew: boolean): void;
438
608
  /**
439
609
  * Handle the quick-save dialog's save. Intercepts updates to a shared view with the shared-view
440
610
  * warning; otherwise executes the save. (Generalized from DataExplorer.onQuickSave.)
441
611
  */
612
+ OnQuickSave(event: QuickSaveEvent): Promise<void>;
613
+ /** @deprecated Use {@link OnQuickSave}. */
442
614
  onQuickSave(event: QuickSaveEvent): Promise<void>;
443
- /** Build a `ViewSaveEvent` from a `QuickSaveEvent` and delegate to {@link onSaveView}. */
615
+ /**
616
+ * Build a `ViewSaveEvent` from a `QuickSaveEvent` and delegate to {@link OnSaveView}.
617
+ *
618
+ * When a config-panel save is staged — a default-view Save carrying a filter, waiting only on a
619
+ * name (see {@link OnSaveDefaultViewSettings}) — its columns, sort, filter and aggregates are
620
+ * merged in and the dialog supplies just the name/description/sharing. The smart-filter fields
621
+ * used to be hard-coded to `false`/`''` here, which dropped a smart filter on this path too
622
+ * (#4220).
623
+ *
624
+ * The staged save is left in place until the save succeeds ({@link OnSaveView} clears it). If
625
+ * the save fails or a host cancels it, the name prompt reopens so the user can retry or cancel
626
+ * rather than losing the filter with nothing on screen.
627
+ */
444
628
  private executeQuickSave;
445
629
  /** Handle the shared-view warning action (update / save-as-copy / cancel). */
630
+ OnSharedViewAction(action: SharedViewAction): Promise<void>;
631
+ /** @deprecated Use {@link OnSharedViewAction}. */
446
632
  onSharedViewAction(action: SharedViewAction): Promise<void>;
447
633
  /** Handle the shared-view warning cancel. */
634
+ OnSharedViewWarningCancel(): void;
635
+ /** @deprecated Use {@link OnSharedViewWarningCancel}. */
448
636
  onSharedViewWarningCancel(): void;
449
637
  /** Handle the quick-save dialog close. */
638
+ OnQuickSaveClose(): void;
639
+ /** @deprecated Use {@link OnQuickSaveClose}. */
450
640
  onQuickSaveClose(): void;
451
641
  /** Handle "open advanced" from the quick-save dialog — carry data into the config panel. */
642
+ OnQuickSaveOpenAdvanced(event: QuickSaveAdvancedEvent): void;
643
+ /** @deprecated Use {@link OnQuickSaveOpenAdvanced}. */
452
644
  onQuickSaveOpenAdvanced(event: QuickSaveAdvancedEvent): void;
453
645
  /**
454
646
  * Handle a duplicate request (F-005). Opens the duplicate dialog so the user names the copy.
455
647
  * (Generalized from DataExplorer.onDuplicateView.)
456
648
  */
649
+ OnDuplicateViewRequested(viewId?: string): void;
650
+ /** @deprecated Use {@link OnDuplicateViewRequested}. */
457
651
  onDuplicateViewRequested(viewId?: string): void;
458
652
  /** Build a {@link ViewConfigSummary} from a view entity for the duplicate dialog. */
459
653
  private buildDuplicateSummary;
@@ -462,17 +656,25 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
462
656
  * copies its config into a new personal view, and persists it; otherwise emits
463
657
  * {@link DuplicateViewRequested}. (Generalized from DataExplorer.onDuplicateConfirmed.)
464
658
  */
659
+ OnDuplicateConfirmed(event: DuplicateViewEvent): Promise<void>;
660
+ /** @deprecated Use {@link OnDuplicateConfirmed}. */
465
661
  onDuplicateConfirmed(event: DuplicateViewEvent): Promise<void>;
466
662
  /** Load the source view, copy its config into a new personal view, and persist it. */
467
663
  private persistDuplicate;
468
664
  /** Handle the duplicate dialog cancel. */
665
+ OnDuplicateCancel(): void;
666
+ /** @deprecated Use {@link OnDuplicateCancel}. */
469
667
  onDuplicateCancel(): void;
470
668
  /** Handle duplicate triggered from the config panel — duplicate the selected view. */
669
+ OnDuplicateFromPanel(): void;
670
+ /** @deprecated Use {@link OnDuplicateFromPanel}. */
471
671
  onDuplicateFromPanel(): void;
472
672
  /**
473
673
  * Handle a revert request (F-007). Re-parses the saved view's grid state, clears the modified
474
674
  * flag, and reloads. (Generalized from DataExplorer.onRevertView.)
475
675
  */
676
+ OnRevertView(): Promise<void>;
677
+ /** @deprecated Use {@link OnRevertView}. */
476
678
  onRevertView(): Promise<void>;
477
679
  /**
478
680
  * Build a `GridState` (Kendo-compatible) from the save event. Priority: explicit columns from the
@@ -485,6 +687,22 @@ export declare class ViewWorkspaceComponent extends BaseAngularComponent impleme
485
687
  private buildSortState;
486
688
  /** Serialize the filter state to JSON, defaulting to an empty Kendo filter. */
487
689
  private buildFilterStateJson;
690
+ /**
691
+ * Whether a save event carries a filter the user would expect to be kept — a smart prompt with
692
+ * actual text, or at least one traditional filter. Deliberately stricter than the config panel's
693
+ * own `hasActiveFilters()`, which only looks at the traditional list.
694
+ */
695
+ private eventHasFilter;
696
+ /** Longest suggested name we will build before eliding the smart prompt. */
697
+ private static readonly SUGGESTED_NAME_MAX_LENGTH;
698
+ /**
699
+ * Propose a name for a view being promoted out of the default view, so the user can accept it
700
+ * with a single click. A smart prompt describes the view better than anything we could invent,
701
+ * so it becomes the name (elided if long); a traditional filter gets a plain marker.
702
+ */
703
+ private buildSuggestedViewName;
704
+ /** Build a {@link ViewConfigSummary} from a pending save event, for the quick-save dialog. */
705
+ private buildConfigSummary;
488
706
  /**
489
707
  * Parse a view's `GridState` into a {@link ViewGridState}, validating columns/sorts against the
490
708
  * current entity to avoid stale fields from a previous entity. Returns null when no valid columns.
@@ -1 +1 @@
1
- {"version":3,"file":"view-workspace.component.d.ts","sourceRoot":"","sources":["../../../src/lib/view-workspace/view-workspace.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-workspace.component.d.ts","sourceRoot":"","sources":["../../../src/lib/view-workspace/view-workspace.component.ts"],"names":[],"mappings":"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"}