@memberjunction/ng-entity-viewer 5.23.0 → 5.24.0
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.
- package/dist/lib/aggregate-panel/aggregate-panel.component.d.ts +1 -1
- package/dist/lib/aggregate-panel/aggregate-panel.component.d.ts.map +1 -1
- package/dist/lib/aggregate-panel/aggregate-panel.component.js.map +1 -1
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts +3 -1
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.d.ts.map +1 -1
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js +1 -1
- package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js.map +1 -1
- package/dist/lib/entity-cards/entity-cards.component.d.ts +10 -1
- package/dist/lib/entity-cards/entity-cards.component.d.ts.map +1 -1
- package/dist/lib/entity-cards/entity-cards.component.js +43 -20
- package/dist/lib/entity-cards/entity-cards.component.js.map +1 -1
- package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts +1 -1
- package/dist/lib/entity-data-grid/entity-data-grid.component.d.ts.map +1 -1
- package/dist/lib/entity-data-grid/entity-data-grid.component.js +12 -17
- package/dist/lib/entity-data-grid/entity-data-grid.component.js.map +1 -1
- package/dist/lib/entity-data-grid/models/grid-types.js +3 -0
- package/dist/lib/entity-data-grid/models/grid-types.js.map +1 -1
- package/dist/lib/entity-viewer/entity-viewer.component.d.ts +1 -1
- package/dist/lib/entity-viewer/entity-viewer.component.d.ts.map +1 -1
- package/dist/lib/entity-viewer/entity-viewer.component.js +8 -13
- package/dist/lib/entity-viewer/entity-viewer.component.js.map +1 -1
- package/dist/lib/types.d.ts +20 -35
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +3 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/utils/record.util.d.ts +1 -1
- package/dist/lib/utils/record.util.d.ts.map +1 -1
- package/dist/lib/utils/record.util.js.map +1 -1
- package/dist/lib/view-config-panel/view-config-panel.component.d.ts +1 -1
- package/dist/lib/view-config-panel/view-config-panel.component.d.ts.map +1 -1
- package/dist/lib/view-config-panel/view-config-panel.component.js.map +1 -1
- package/package.json +10 -10
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// Re-export shared types from the main types file to avoid duplication
|
|
2
|
+
// These are used by both EntityGridComponent and EntityDataGridComponent
|
|
3
|
+
export { ViewGridState } from '../../types';
|
|
1
4
|
/**
|
|
2
5
|
* Default visual configuration - provides attractive defaults out of the box
|
|
3
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid-types.js","sourceRoot":"","sources":["../../../../src/lib/entity-data-grid/models/grid-types.ts"],"names":[],"mappings":"AAglBA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,sCAAsC;IACtC,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,EAAE,EAAG,2BAA2B;IAClD,eAAe,EAAE,EAAE,EAAI,2BAA2B;IAClD,YAAY,EAAE,IAAI;IAElB,yDAAyD;IACzD,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,QAAQ;IAC9B,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,GAAG;IAE5B,mCAAmC;IACnC,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IAEnB,0EAA0E;IAC1E,uBAAuB,EAAE,EAAE,EAAG,+CAA+C;IAC7E,uBAAuB,EAAE,CAAC;IAC1B,mBAAmB,EAAE,EAAE,EAAG,kDAAkD;IAE5E,2BAA2B;IAC3B,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,EAAE,EAAG,8CAA8C;IAElE,qCAAqC;IACrC,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,CAAC;IAEnB,oBAAoB;IACpB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,QAAQ;IAErB,eAAe;IACf,WAAW,EAAE,EAAE,CAAE,8CAA8C;CAChE,CAAC","sourcesContent":["import { TemplateRef } from '@angular/core';\n\n// Re-export shared types from the main types file to avoid duplication\n// These are used by both EntityGridComponent and EntityDataGridComponent\nexport {\n SortDirection,\n SortState,\n GridStateChangedEvent,\n // View grid types - re-exported from types.ts which gets them from core-entities\n ViewGridColumnSetting,\n ViewGridSortSetting,\n ViewGridState\n} from '../../types';\n\n// ========================================\n// Enums and Union Types\n// ========================================\n\n/**\n * Selection mode for the grid\n * - 'none': No selection allowed\n * - 'single': Only one row can be selected at a time\n * - 'multiple': Multiple rows can be selected (click to toggle)\n * - 'checkbox': Checkbox column for selection\n */\nexport type GridSelectionMode = 'none' | 'single' | 'multiple' | 'checkbox';\n\n/**\n * Edit mode for the grid\n * - 'none': No editing allowed\n * - 'cell': Individual cell editing\n * - 'row': Full row editing\n * - 'batch': Batch editing with explicit save\n */\nexport type GridEditMode = 'none' | 'cell' | 'row' | 'batch';\n\n/**\n * Grid lines display mode\n */\nexport type GridLinesMode = 'none' | 'horizontal' | 'vertical' | 'both';\n\n/**\n * Filter operators for column filtering\n */\nexport type FilterOperator =\n | 'eq' | 'neq'\n | 'gt' | 'gte' | 'lt' | 'lte'\n | 'contains' | 'startswith' | 'endswith'\n | 'isnull' | 'isnotnull'\n | 'in' | 'notin';\n\n/**\n * Column data type for formatting and editing\n */\nexport type GridColumnType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'date'\n | 'datetime'\n | 'currency'\n | 'percent'\n | 'custom';\n\n// ========================================\n// Column Configuration\n// ========================================\n\n/**\n * Configuration for a single grid column\n */\nexport interface GridColumnConfig {\n /** Field name on the entity */\n field: string;\n\n /** Display title (defaults to field name) */\n title?: string;\n\n /** Column width in pixels (or 'auto') */\n width?: number | 'auto';\n\n /** Minimum width for resizing */\n minWidth?: number;\n\n /** Maximum width for resizing */\n maxWidth?: number;\n\n /** Column is visible */\n visible?: boolean;\n\n /** Column is sortable */\n sortable?: boolean;\n\n /** Column is filterable */\n filterable?: boolean;\n\n /** Column is editable */\n editable?: boolean;\n\n /** Column is resizable */\n resizable?: boolean;\n\n /** Column is reorderable */\n reorderable?: boolean;\n\n /** Data type for formatting and editing */\n type?: GridColumnType;\n\n /** Format string (e.g., 'yyyy-MM-dd' for dates, '#,##0.00' for numbers) */\n format?: string;\n\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n\n /** Header alignment (defaults to align) */\n headerAlign?: 'left' | 'center' | 'right';\n\n /** CSS class for cells - can be string or function */\n cellClass?: string | ((row: Record<string, unknown>, column: GridColumnConfig) => string);\n\n /** CSS class for header */\n headerClass?: string;\n\n /** Custom cell template reference */\n cellTemplate?: TemplateRef<GridCellTemplateContext>;\n\n /** Custom header template reference */\n headerTemplate?: TemplateRef<GridHeaderTemplateContext>;\n\n /** Custom editor template reference */\n editorTemplate?: TemplateRef<GridEditorTemplateContext>;\n\n /** Cell value formatter function */\n formatter?: (value: unknown, row: Record<string, unknown>, column: GridColumnConfig) => string;\n\n /** Cell style function */\n cellStyle?: (row: Record<string, unknown>, column: GridColumnConfig) => Record<string, string>;\n\n /** Whether to show tooltip on hover */\n showTooltip?: boolean;\n\n /** Custom tooltip content */\n tooltip?: string | ((row: Record<string, unknown>, column: GridColumnConfig) => string);\n\n /** Frozen column position (alias for pinned, for backward compatibility) */\n frozen?: 'left' | 'right' | false;\n\n /** Column pinning position (AG Grid terminology) */\n pinned?: 'left' | 'right' | null;\n\n /** Flex grow factor for auto-sizing columns */\n flex?: number;\n\n /** Column group (for grouped headers) */\n group?: string;\n\n /** Filter options for dropdown filters */\n filterOptions?: Array<{ value: unknown; label: string }>;\n\n /** Sort order index (for default multi-sort) */\n sortIndex?: number;\n\n /** Sort direction (for default sort) */\n sortDirection?: 'asc' | 'desc';\n}\n\n/**\n * Context provided to custom cell templates\n */\nexport interface GridCellTemplateContext {\n /** The row data (entity) */\n row: Record<string, unknown>;\n /** Column configuration */\n column: GridColumnConfig;\n /** The cell value */\n value: unknown;\n /** Row index in the current view */\n rowIndex: number;\n /** Whether the cell is currently being edited */\n isEditing: boolean;\n}\n\n/**\n * Context provided to custom header templates\n */\nexport interface GridHeaderTemplateContext {\n /** Column configuration */\n column: GridColumnConfig;\n /** Current sort direction for this column */\n sortDirection: 'asc' | 'desc' | 'none';\n /** Current filter value for this column */\n filterValue: unknown;\n}\n\n/**\n * Context provided to custom editor templates\n */\nexport interface GridEditorTemplateContext {\n /** The row data (entity) */\n row: Record<string, unknown>;\n /** Column configuration */\n column: GridColumnConfig;\n /** Current cell value */\n value: unknown;\n /** Row index in the current view */\n rowIndex: number;\n /** Function to commit the edit with a new value */\n commitEdit: (newValue: unknown) => void;\n /** Function to cancel the edit */\n cancelEdit: () => void;\n}\n\n// ========================================\n// Toolbar Configuration\n// ========================================\n\n/**\n * Configuration for the grid toolbar\n */\nexport interface GridToolbarConfig {\n /** Show search input */\n showSearch?: boolean;\n\n /** Search placeholder text */\n searchPlaceholder?: string;\n\n /** Search debounce time in ms */\n searchDebounce?: number;\n\n /** Show refresh button */\n showRefresh?: boolean;\n\n /** Show add button */\n showAdd?: boolean;\n\n /** Show delete button (for selected rows) */\n showDelete?: boolean;\n\n /** Show export button */\n showExport?: boolean;\n\n /** Export formats available */\n exportFormats?: Array<'excel' | 'csv' | 'json'>;\n\n /** Show column chooser button */\n showColumnChooser?: boolean;\n\n /** Show filter toggle button */\n showFilterToggle?: boolean;\n\n /** Custom toolbar buttons */\n customButtons?: GridToolbarButton[];\n\n /** Toolbar position */\n position?: 'top' | 'bottom' | 'both';\n\n /** Show row count */\n showRowCount?: boolean;\n\n /** Show selection count */\n showSelectionCount?: boolean;\n}\n\n/**\n * Custom toolbar button configuration\n */\nexport interface GridToolbarButton {\n /** Unique button ID */\n id: string;\n\n /** Button text */\n text?: string;\n\n /** Button icon (Font Awesome class) */\n icon?: string;\n\n /** Button tooltip */\n tooltip?: string;\n\n /** Button is disabled - can be boolean or function */\n disabled?: boolean | (() => boolean);\n\n /** Button is visible - can be boolean or function */\n visible?: boolean | (() => boolean);\n\n /** Button CSS class */\n cssClass?: string;\n\n /** Button position: 'left' | 'right' */\n position?: 'left' | 'right';\n\n /** Click handler (if not using event) */\n onClick?: () => void;\n}\n\n// ========================================\n// State Types (Extended for EntityDataGrid)\n// ========================================\n\n/**\n * Extended sort state with multi-sort index\n * Extends the base SortState from types.ts with an index for multi-sort ordering\n */\nexport interface DataGridSortState {\n /** Field name being sorted */\n field: string;\n /** Sort direction */\n direction: 'asc' | 'desc';\n /** Index for multi-sort ordering */\n index: number;\n}\n\n/**\n * Filter state for a column\n */\nexport interface FilterState {\n /** Field name being filtered */\n field: string;\n /** Filter operator */\n operator: FilterOperator;\n /** Filter value */\n value: unknown;\n}\n\n/**\n * Pending change for batch editing\n */\nexport interface PendingChange {\n /** Row key (usually ID) */\n rowKey: string;\n /** The row entity */\n row: Record<string, unknown>;\n /** Field that was changed */\n field: string;\n /** Original value */\n oldValue: unknown;\n /** New value */\n newValue: unknown;\n /** Type of change */\n changeType: 'update' | 'insert' | 'delete';\n}\n\n/**\n * Complete grid state for persistence (internal to EntityDataGrid)\n * Note: For UserView persistence, use ViewGridState from @memberjunction/core-entities\n */\nexport interface GridState {\n /** Column states */\n columns: Array<{\n field: string;\n width: number;\n visible: boolean;\n order: number;\n /** Column pinning position */\n pinned?: 'left' | 'right' | null;\n /** Flex grow factor for auto-sizing */\n flex?: number;\n /** Minimum column width */\n minWidth?: number;\n /** Maximum column width */\n maxWidth?: number;\n }>;\n /** Sort state */\n sort: DataGridSortState[];\n /** Filter state */\n filters: FilterState[];\n /** Selected row keys */\n selection: string[];\n}\n\n/**\n * Export options for grid data\n */\nexport interface ExportOptions {\n /** Export only visible columns */\n visibleColumnsOnly?: boolean;\n\n /** Export only selected rows */\n selectedRowsOnly?: boolean;\n\n /** Include headers */\n includeHeaders?: boolean;\n\n /** Custom column mapping */\n columnMapping?: Record<string, string>;\n}\n\n// ========================================\n// Event Types\n// ========================================\n\n/**\n * Event emitted when a foreign key link is clicked in the grid.\n * The parent component should handle navigation to the related record.\n */\nexport interface ForeignKeyClickEvent {\n /** The ID of the related entity (from EntityFieldInfo.RelatedEntityID) */\n relatedEntityId: string;\n /** The ID of the related record (the FK value) */\n recordId: string;\n /** The field name that was clicked */\n fieldName: string;\n /** The entity name of the related entity (if available) */\n relatedEntityName?: string;\n}\n\n// ========================================\n// Internal Types\n// ========================================\n\n/**\n * Internal representation of a rendered row\n */\nexport interface GridRowData {\n /** Row key (usually ID) */\n key: string;\n /** Row index in the data array */\n index: number;\n /** The entity object */\n entity: Record<string, unknown>;\n /** Whether the row is selected */\n selected: boolean;\n /** Whether the row is being edited */\n editing: boolean;\n /** Whether the row has unsaved changes */\n dirty: boolean;\n /** CSS classes for the row */\n cssClasses: string[];\n}\n\n/**\n * Virtual scroll viewport info\n */\nexport interface VirtualScrollState {\n /** First visible row index */\n startIndex: number;\n /** Last visible row index */\n endIndex: number;\n /** Scroll offset from top */\n scrollTop: number;\n /** Total scroll height */\n totalHeight: number;\n /** Viewport height */\n viewportHeight: number;\n /** Number of buffer rows above and below */\n bufferSize: number;\n}\n\n/**\n * Column runtime state (internal)\n */\nexport interface ColumnRuntimeState {\n /** Column configuration */\n config: GridColumnConfig;\n /** Computed width */\n computedWidth: number;\n /** Current sort direction */\n sortDirection: 'asc' | 'desc' | 'none';\n /** Sort index for multi-sort */\n sortIndex: number;\n /** Current filter value */\n filterValue: unknown;\n /** Current visibility */\n visible: boolean;\n /** Current order/position */\n order: number;\n}\n\n/**\n * RunView parameters subset for data loading\n */\nexport interface GridRunViewParams {\n /** Entity name */\n entityName: string;\n /** Extra filter clause */\n extraFilter?: string;\n /** Order by clause */\n orderBy?: string;\n /** Maximum rows to fetch */\n maxRows?: number;\n /** Fields to retrieve */\n fields?: string[];\n /** User search string */\n searchString?: string;\n}\n\n// ========================================\n// Entity Action Types\n// ========================================\n\n/**\n * Configuration for an entity action displayed in the grid toolbar.\n * This is a simplified representation of EntityAction for the UI layer.\n */\nexport interface EntityActionConfig {\n /** Unique action ID */\n id: string;\n /** Display name */\n name: string;\n /** Optional description */\n description?: string;\n /** Optional icon (Font Awesome class) */\n icon?: string;\n /** Whether the action requires selected records */\n requiresSelection?: boolean;\n /** Minimum number of selected records required */\n minSelectedRecords?: number;\n /** Maximum number of selected records allowed */\n maxSelectedRecords?: number;\n /** Invocation type (e.g., 'View', 'SingleRecord', 'MultiRecord') */\n invocationType?: string;\n /** Additional action metadata */\n metadata?: Record<string, unknown>;\n}\n\n// ========================================\n// Visual Customization Types\n// ========================================\n\n/**\n * Header style preset options\n */\nexport type GridHeaderStyle = 'flat' | 'elevated' | 'gradient' | 'bold';\n\n/**\n * Configuration for grid visual appearance\n * All properties are optional - defaults provide an attractive \"out of the box\" experience\n */\nexport interface GridVisualConfig {\n // Header Styling\n /** Header style preset: 'flat' | 'elevated' | 'gradient' | 'bold' */\n headerStyle?: GridHeaderStyle;\n /** Custom header background color (overrides preset) */\n headerBackground?: string;\n /** Custom header text color */\n headerTextColor?: string;\n /** Show bottom shadow/border on header */\n headerShadow?: boolean;\n\n // Row Styling\n /** Enable alternating row colors (zebra striping) */\n alternateRows?: boolean;\n /** Contrast level for alternating rows: 'subtle' | 'medium' | 'strong' */\n alternateRowContrast?: 'subtle' | 'medium' | 'strong';\n /** Enable smooth hover transitions */\n hoverTransitions?: boolean;\n /** Hover transition duration in ms */\n hoverTransitionDuration?: number;\n\n // Cell Formatting\n /** Right-align numeric columns automatically */\n rightAlignNumbers?: boolean;\n /** Format dates with a friendly format (e.g., \"Jan 15, 2024\" instead of \"2024-01-15\") */\n friendlyDates?: boolean;\n /** Render email cells as clickable mailto links */\n clickableEmails?: boolean;\n /** Render boolean cells as checkmark/x icons instead of text */\n booleanIcons?: boolean;\n /** Render URL cells as clickable links */\n clickableUrls?: boolean;\n\n // Selection Styling\n /** Color for selection indicator (left border on selected rows) */\n selectionIndicatorColor?: string;\n /** Width of selection indicator in pixels */\n selectionIndicatorWidth?: number;\n /** Selection background color */\n selectionBackground?: string;\n\n // Checkbox Column\n /** Style for checkbox column: 'default' | 'rounded' | 'filled' */\n checkboxStyle?: 'default' | 'rounded' | 'filled';\n /** Checkbox accent color */\n checkboxColor?: string;\n\n // Loading States\n /** Show skeleton loading rows instead of spinner */\n skeletonLoading?: boolean;\n /** Number of skeleton rows to show */\n skeletonRowCount?: number;\n\n // Borders & Spacing\n /** Border radius for the grid container */\n borderRadius?: number;\n /** Cell padding preset: 'compact' | 'normal' | 'comfortable' */\n cellPadding?: 'compact' | 'normal' | 'comfortable';\n\n // Accent Color (used for sort indicators, focus states, etc.)\n /** Primary accent color for interactive elements */\n accentColor?: string;\n}\n\n/**\n * Default visual configuration - provides attractive defaults out of the box\n */\nexport const DEFAULT_VISUAL_CONFIG: Required<GridVisualConfig> = {\n // Header - elevated style with shadow\n headerStyle: 'elevated',\n headerBackground: '', // Empty = use CSS variable\n headerTextColor: '', // Empty = use CSS variable\n headerShadow: true,\n\n // Rows - medium contrast zebra striping with transitions\n alternateRows: true,\n alternateRowContrast: 'medium',\n hoverTransitions: true,\n hoverTransitionDuration: 150,\n\n // Cell formatting - smart defaults\n rightAlignNumbers: true,\n friendlyDates: true,\n clickableEmails: true,\n booleanIcons: true,\n clickableUrls: true,\n\n // Selection - mellow yellow accent (avoids conflict with blue hyperlinks)\n selectionIndicatorColor: '', // Empty = use CSS variable --mj-status-warning\n selectionIndicatorWidth: 3,\n selectionBackground: '', // Empty = use CSS variable --mj-status-warning-bg\n\n // Checkbox - rounded style\n checkboxStyle: 'rounded',\n checkboxColor: '', // Empty = use CSS variable --mj-brand-primary\n\n // Loading - skeleton for modern feel\n skeletonLoading: true,\n skeletonRowCount: 8,\n\n // Borders & Spacing\n borderRadius: 0,\n cellPadding: 'normal',\n\n // Accent color\n accentColor: '' // Empty = use CSS variable --mj-brand-primary\n};\n"]}
|
|
1
|
+
{"version":3,"file":"grid-types.js","sourceRoot":"","sources":["../../../../src/lib/entity-data-grid/models/grid-types.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,yEAAyE;AACzE,OAAO,EAOL,aAAa,EACd,MAAM,aAAa,CAAC;AAokBrB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAA+B;IAC/D,sCAAsC;IACtC,WAAW,EAAE,UAAU;IACvB,gBAAgB,EAAE,EAAE,EAAG,2BAA2B;IAClD,eAAe,EAAE,EAAE,EAAI,2BAA2B;IAClD,YAAY,EAAE,IAAI;IAElB,yDAAyD;IACzD,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,QAAQ;IAC9B,gBAAgB,EAAE,IAAI;IACtB,uBAAuB,EAAE,GAAG;IAE5B,mCAAmC;IACnC,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;IAEnB,0EAA0E;IAC1E,uBAAuB,EAAE,EAAE,EAAG,+CAA+C;IAC7E,uBAAuB,EAAE,CAAC;IAC1B,mBAAmB,EAAE,EAAE,EAAG,kDAAkD;IAE5E,2BAA2B;IAC3B,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,EAAE,EAAG,8CAA8C;IAElE,qCAAqC;IACrC,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,CAAC;IAEnB,oBAAoB;IACpB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,QAAQ;IAErB,eAAe;IACf,WAAW,EAAE,EAAE,CAAE,8CAA8C;CAChE,CAAC","sourcesContent":["import { TemplateRef } from '@angular/core';\n\n// Re-export shared types from the main types file to avoid duplication\n// These are used by both EntityGridComponent and EntityDataGridComponent\nexport {\n SortDirection,\n SortState,\n GridStateChangedEvent,\n // View grid types - re-exported from types.ts which gets them from core-entities\n ViewGridColumnSetting,\n ViewGridSortSetting,\n ViewGridState\n} from '../../types';\n\n// ========================================\n// Enums and Union Types\n// ========================================\n\n/**\n * Selection mode for the grid\n * - 'none': No selection allowed\n * - 'single': Only one row can be selected at a time\n * - 'multiple': Multiple rows can be selected (click to toggle)\n * - 'checkbox': Checkbox column for selection\n */\nexport type GridSelectionMode = 'none' | 'single' | 'multiple' | 'checkbox';\n\n/**\n * Edit mode for the grid\n * - 'none': No editing allowed\n * - 'cell': Individual cell editing\n * - 'row': Full row editing\n * - 'batch': Batch editing with explicit save\n */\nexport type GridEditMode = 'none' | 'cell' | 'row' | 'batch';\n\n/**\n * Grid lines display mode\n */\nexport type GridLinesMode = 'none' | 'horizontal' | 'vertical' | 'both';\n\n/**\n * Filter operators for column filtering\n */\nexport type FilterOperator =\n | 'eq' | 'neq'\n | 'gt' | 'gte' | 'lt' | 'lte'\n | 'contains' | 'startswith' | 'endswith'\n | 'isnull' | 'isnotnull'\n | 'in' | 'notin';\n\n/**\n * Column data type for formatting and editing\n */\nexport type GridColumnType =\n | 'string'\n | 'number'\n | 'boolean'\n | 'date'\n | 'datetime'\n | 'currency'\n | 'percent'\n | 'custom';\n\n// ========================================\n// Column Configuration\n// ========================================\n\n/**\n * Configuration for a single grid column\n */\nexport interface GridColumnConfig {\n /** Field name on the entity */\n field: string;\n\n /** Display title (defaults to field name) */\n title?: string;\n\n /** Column width in pixels (or 'auto') */\n width?: number | 'auto';\n\n /** Minimum width for resizing */\n minWidth?: number;\n\n /** Maximum width for resizing */\n maxWidth?: number;\n\n /** Column is visible */\n visible?: boolean;\n\n /** Column is sortable */\n sortable?: boolean;\n\n /** Column is filterable */\n filterable?: boolean;\n\n /** Column is editable */\n editable?: boolean;\n\n /** Column is resizable */\n resizable?: boolean;\n\n /** Column is reorderable */\n reorderable?: boolean;\n\n /** Data type for formatting and editing */\n type?: GridColumnType;\n\n /** Format string (e.g., 'yyyy-MM-dd' for dates, '#,##0.00' for numbers) */\n format?: string;\n\n /** Text alignment */\n align?: 'left' | 'center' | 'right';\n\n /** Header alignment (defaults to align) */\n headerAlign?: 'left' | 'center' | 'right';\n\n /** CSS class for cells - can be string or function */\n cellClass?: string | ((row: Record<string, unknown>, column: GridColumnConfig) => string);\n\n /** CSS class for header */\n headerClass?: string;\n\n /** Custom cell template reference */\n cellTemplate?: TemplateRef<GridCellTemplateContext>;\n\n /** Custom header template reference */\n headerTemplate?: TemplateRef<GridHeaderTemplateContext>;\n\n /** Custom editor template reference */\n editorTemplate?: TemplateRef<GridEditorTemplateContext>;\n\n /** Cell value formatter function */\n formatter?: (value: unknown, row: Record<string, unknown>, column: GridColumnConfig) => string;\n\n /** Cell style function */\n cellStyle?: (row: Record<string, unknown>, column: GridColumnConfig) => Record<string, string>;\n\n /** Whether to show tooltip on hover */\n showTooltip?: boolean;\n\n /** Custom tooltip content */\n tooltip?: string | ((row: Record<string, unknown>, column: GridColumnConfig) => string);\n\n /** Frozen column position (alias for pinned, for backward compatibility) */\n frozen?: 'left' | 'right' | false;\n\n /** Column pinning position (AG Grid terminology) */\n pinned?: 'left' | 'right' | null;\n\n /** Flex grow factor for auto-sizing columns */\n flex?: number;\n\n /** Column group (for grouped headers) */\n group?: string;\n\n /** Filter options for dropdown filters */\n filterOptions?: Array<{ value: unknown; label: string }>;\n\n /** Sort order index (for default multi-sort) */\n sortIndex?: number;\n\n /** Sort direction (for default sort) */\n sortDirection?: 'asc' | 'desc';\n}\n\n/**\n * Context provided to custom cell templates\n */\nexport interface GridCellTemplateContext {\n /** The row data (entity) */\n row: Record<string, unknown>;\n /** Column configuration */\n column: GridColumnConfig;\n /** The cell value */\n value: unknown;\n /** Row index in the current view */\n rowIndex: number;\n /** Whether the cell is currently being edited */\n isEditing: boolean;\n}\n\n/**\n * Context provided to custom header templates\n */\nexport interface GridHeaderTemplateContext {\n /** Column configuration */\n column: GridColumnConfig;\n /** Current sort direction for this column */\n sortDirection: 'asc' | 'desc' | 'none';\n /** Current filter value for this column */\n filterValue: unknown;\n}\n\n/**\n * Context provided to custom editor templates\n */\nexport interface GridEditorTemplateContext {\n /** The row data (entity) */\n row: Record<string, unknown>;\n /** Column configuration */\n column: GridColumnConfig;\n /** Current cell value */\n value: unknown;\n /** Row index in the current view */\n rowIndex: number;\n /** Function to commit the edit with a new value */\n commitEdit: (newValue: unknown) => void;\n /** Function to cancel the edit */\n cancelEdit: () => void;\n}\n\n// ========================================\n// Toolbar Configuration\n// ========================================\n\n/**\n * Configuration for the grid toolbar\n */\nexport interface GridToolbarConfig {\n /** Show search input */\n showSearch?: boolean;\n\n /** Search placeholder text */\n searchPlaceholder?: string;\n\n /** Search debounce time in ms */\n searchDebounce?: number;\n\n /** Show refresh button */\n showRefresh?: boolean;\n\n /** Show add button */\n showAdd?: boolean;\n\n /** Show delete button (for selected rows) */\n showDelete?: boolean;\n\n /** Show export button */\n showExport?: boolean;\n\n /** Export formats available */\n exportFormats?: Array<'excel' | 'csv' | 'json'>;\n\n /** Show column chooser button */\n showColumnChooser?: boolean;\n\n /** Show filter toggle button */\n showFilterToggle?: boolean;\n\n /** Custom toolbar buttons */\n customButtons?: GridToolbarButton[];\n\n /** Toolbar position */\n position?: 'top' | 'bottom' | 'both';\n\n /** Show row count */\n showRowCount?: boolean;\n\n /** Show selection count */\n showSelectionCount?: boolean;\n}\n\n/**\n * Custom toolbar button configuration\n */\nexport interface GridToolbarButton {\n /** Unique button ID */\n id: string;\n\n /** Button text */\n text?: string;\n\n /** Button icon (Font Awesome class) */\n icon?: string;\n\n /** Button tooltip */\n tooltip?: string;\n\n /** Button is disabled - can be boolean or function */\n disabled?: boolean | (() => boolean);\n\n /** Button is visible - can be boolean or function */\n visible?: boolean | (() => boolean);\n\n /** Button CSS class */\n cssClass?: string;\n\n /** Button position: 'left' | 'right' */\n position?: 'left' | 'right';\n\n /** Click handler (if not using event) */\n onClick?: () => void;\n}\n\n// ========================================\n// State Types (Extended for EntityDataGrid)\n// ========================================\n\n/**\n * Extended sort state with multi-sort index\n * Extends the base SortState from types.ts with an index for multi-sort ordering\n */\nexport interface DataGridSortState {\n /** Field name being sorted */\n field: string;\n /** Sort direction */\n direction: 'asc' | 'desc';\n /** Index for multi-sort ordering */\n index: number;\n}\n\n/**\n * Filter state for a column\n */\nexport interface FilterState {\n /** Field name being filtered */\n field: string;\n /** Filter operator */\n operator: FilterOperator;\n /** Filter value */\n value: unknown;\n}\n\n/**\n * Pending change for batch editing\n */\nexport interface PendingChange {\n /** Row key (usually ID) */\n rowKey: string;\n /** The row entity */\n row: Record<string, unknown>;\n /** Field that was changed */\n field: string;\n /** Original value */\n oldValue: unknown;\n /** New value */\n newValue: unknown;\n /** Type of change */\n changeType: 'update' | 'insert' | 'delete';\n}\n\n/**\n * Complete grid state for persistence (internal to EntityDataGrid)\n * Note: For UserView persistence, use ViewGridState from @memberjunction/core-entities\n */\nexport interface GridState {\n /** Column states */\n columns: Array<{\n field: string;\n width: number;\n visible: boolean;\n order: number;\n /** Column pinning position */\n pinned?: 'left' | 'right' | null;\n /** Flex grow factor for auto-sizing */\n flex?: number;\n /** Minimum column width */\n minWidth?: number;\n /** Maximum column width */\n maxWidth?: number;\n }>;\n /** Sort state */\n sort: DataGridSortState[];\n /** Filter state */\n filters: FilterState[];\n /** Selected row keys */\n selection: string[];\n}\n\n/**\n * Export options for grid data\n */\nexport interface ExportOptions {\n /** Export only visible columns */\n visibleColumnsOnly?: boolean;\n\n /** Export only selected rows */\n selectedRowsOnly?: boolean;\n\n /** Include headers */\n includeHeaders?: boolean;\n\n /** Custom column mapping */\n columnMapping?: Record<string, string>;\n}\n\n// ========================================\n// Event Types\n// ========================================\n\n/**\n * Event emitted when a foreign key link is clicked in the grid.\n * The parent component should handle navigation to the related record.\n */\nexport interface ForeignKeyClickEvent {\n /** The ID of the related entity (from EntityFieldInfo.RelatedEntityID) */\n relatedEntityId: string;\n /** The ID of the related record (the FK value) */\n recordId: string;\n /** The field name that was clicked */\n fieldName: string;\n /** The entity name of the related entity (if available) */\n relatedEntityName?: string;\n}\n\n// ========================================\n// Internal Types\n// ========================================\n\n/**\n * Internal representation of a rendered row\n */\nexport interface GridRowData {\n /** Row key (usually ID) */\n key: string;\n /** Row index in the data array */\n index: number;\n /** The entity object */\n entity: Record<string, unknown>;\n /** Whether the row is selected */\n selected: boolean;\n /** Whether the row is being edited */\n editing: boolean;\n /** Whether the row has unsaved changes */\n dirty: boolean;\n /** CSS classes for the row */\n cssClasses: string[];\n}\n\n/**\n * Virtual scroll viewport info\n */\nexport interface VirtualScrollState {\n /** First visible row index */\n startIndex: number;\n /** Last visible row index */\n endIndex: number;\n /** Scroll offset from top */\n scrollTop: number;\n /** Total scroll height */\n totalHeight: number;\n /** Viewport height */\n viewportHeight: number;\n /** Number of buffer rows above and below */\n bufferSize: number;\n}\n\n/**\n * Column runtime state (internal)\n */\nexport interface ColumnRuntimeState {\n /** Column configuration */\n config: GridColumnConfig;\n /** Computed width */\n computedWidth: number;\n /** Current sort direction */\n sortDirection: 'asc' | 'desc' | 'none';\n /** Sort index for multi-sort */\n sortIndex: number;\n /** Current filter value */\n filterValue: unknown;\n /** Current visibility */\n visible: boolean;\n /** Current order/position */\n order: number;\n}\n\n/**\n * RunView parameters subset for data loading\n */\nexport interface GridRunViewParams {\n /** Entity name */\n entityName: string;\n /** Extra filter clause */\n extraFilter?: string;\n /** Order by clause */\n orderBy?: string;\n /** Maximum rows to fetch */\n maxRows?: number;\n /** Fields to retrieve */\n fields?: string[];\n /** User search string */\n searchString?: string;\n}\n\n// ========================================\n// Entity Action Types\n// ========================================\n\n/**\n * Configuration for an entity action displayed in the grid toolbar.\n * This is a simplified representation of EntityAction for the UI layer.\n */\nexport interface EntityActionConfig {\n /** Unique action ID */\n id: string;\n /** Display name */\n name: string;\n /** Optional description */\n description?: string;\n /** Optional icon (Font Awesome class) */\n icon?: string;\n /** Whether the action requires selected records */\n requiresSelection?: boolean;\n /** Minimum number of selected records required */\n minSelectedRecords?: number;\n /** Maximum number of selected records allowed */\n maxSelectedRecords?: number;\n /** Invocation type (e.g., 'View', 'SingleRecord', 'MultiRecord') */\n invocationType?: string;\n /** Additional action metadata */\n metadata?: Record<string, unknown>;\n}\n\n// ========================================\n// Visual Customization Types\n// ========================================\n\n/**\n * Header style preset options\n */\nexport type GridHeaderStyle = 'flat' | 'elevated' | 'gradient' | 'bold';\n\n/**\n * Configuration for grid visual appearance\n * All properties are optional - defaults provide an attractive \"out of the box\" experience\n */\nexport interface GridVisualConfig {\n // Header Styling\n /** Header style preset: 'flat' | 'elevated' | 'gradient' | 'bold' */\n headerStyle?: GridHeaderStyle;\n /** Custom header background color (overrides preset) */\n headerBackground?: string;\n /** Custom header text color */\n headerTextColor?: string;\n /** Show bottom shadow/border on header */\n headerShadow?: boolean;\n\n // Row Styling\n /** Enable alternating row colors (zebra striping) */\n alternateRows?: boolean;\n /** Contrast level for alternating rows: 'subtle' | 'medium' | 'strong' */\n alternateRowContrast?: 'subtle' | 'medium' | 'strong';\n /** Enable smooth hover transitions */\n hoverTransitions?: boolean;\n /** Hover transition duration in ms */\n hoverTransitionDuration?: number;\n\n // Cell Formatting\n /** Right-align numeric columns automatically */\n rightAlignNumbers?: boolean;\n /** Format dates with a friendly format (e.g., \"Jan 15, 2024\" instead of \"2024-01-15\") */\n friendlyDates?: boolean;\n /** Render email cells as clickable mailto links */\n clickableEmails?: boolean;\n /** Render boolean cells as checkmark/x icons instead of text */\n booleanIcons?: boolean;\n /** Render URL cells as clickable links */\n clickableUrls?: boolean;\n\n // Selection Styling\n /** Color for selection indicator (left border on selected rows) */\n selectionIndicatorColor?: string;\n /** Width of selection indicator in pixels */\n selectionIndicatorWidth?: number;\n /** Selection background color */\n selectionBackground?: string;\n\n // Checkbox Column\n /** Style for checkbox column: 'default' | 'rounded' | 'filled' */\n checkboxStyle?: 'default' | 'rounded' | 'filled';\n /** Checkbox accent color */\n checkboxColor?: string;\n\n // Loading States\n /** Show skeleton loading rows instead of spinner */\n skeletonLoading?: boolean;\n /** Number of skeleton rows to show */\n skeletonRowCount?: number;\n\n // Borders & Spacing\n /** Border radius for the grid container */\n borderRadius?: number;\n /** Cell padding preset: 'compact' | 'normal' | 'comfortable' */\n cellPadding?: 'compact' | 'normal' | 'comfortable';\n\n // Accent Color (used for sort indicators, focus states, etc.)\n /** Primary accent color for interactive elements */\n accentColor?: string;\n}\n\n/**\n * Default visual configuration - provides attractive defaults out of the box\n */\nexport const DEFAULT_VISUAL_CONFIG: Required<GridVisualConfig> = {\n // Header - elevated style with shadow\n headerStyle: 'elevated',\n headerBackground: '', // Empty = use CSS variable\n headerTextColor: '', // Empty = use CSS variable\n headerShadow: true,\n\n // Rows - medium contrast zebra striping with transitions\n alternateRows: true,\n alternateRowContrast: 'medium',\n hoverTransitions: true,\n hoverTransitionDuration: 150,\n\n // Cell formatting - smart defaults\n rightAlignNumbers: true,\n friendlyDates: true,\n clickableEmails: true,\n booleanIcons: true,\n clickableUrls: true,\n\n // Selection - mellow yellow accent (avoids conflict with blue hyperlinks)\n selectionIndicatorColor: '', // Empty = use CSS variable --mj-status-warning\n selectionIndicatorWidth: 3,\n selectionBackground: '', // Empty = use CSS variable --mj-status-warning-bg\n\n // Checkbox - rounded style\n checkboxStyle: 'rounded',\n checkboxColor: '', // Empty = use CSS variable --mj-brand-primary\n\n // Loading - skeleton for modern feel\n skeletonLoading: true,\n skeletonRowCount: 8,\n\n // Borders & Spacing\n borderRadius: 0,\n cellPadding: 'normal',\n\n // Accent color\n accentColor: '' // Empty = use CSS variable --mj-brand-primary\n};\n"]}
|
|
@@ -174,7 +174,7 @@ export declare class EntityViewerComponent implements OnInit, OnDestroy {
|
|
|
174
174
|
/**
|
|
175
175
|
* Emitted when timeline configuration changes (date field, grouping, etc.)
|
|
176
176
|
*/
|
|
177
|
-
timelineConfigChange: EventEmitter<
|
|
177
|
+
timelineConfigChange: EventEmitter<import("@memberjunction/core-entities").MJUserViewEntity_ITimelineState>;
|
|
178
178
|
/**
|
|
179
179
|
* Emitted when the Add/New button is clicked in the grid toolbar
|
|
180
180
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-viewer.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-viewer/entity-viewer.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entity-viewer.component.d.ts","sourceRoot":"","sources":["../../../src/lib/entity-viewer/entity-viewer.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -940,19 +940,14 @@ export class EntityViewerComponent {
|
|
|
940
940
|
}
|
|
941
941
|
// Priority 2: GridState.sortSettings (sort may only be stored here)
|
|
942
942
|
if (view.GridState) {
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
return;
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
catch {
|
|
955
|
-
// Invalid GridState JSON — ignore
|
|
943
|
+
const gridState = view.GridStateObject;
|
|
944
|
+
if (gridState?.sortSettings && gridState.sortSettings.length > 0) {
|
|
945
|
+
const firstSort = gridState.sortSettings[0];
|
|
946
|
+
this.internalSortState = {
|
|
947
|
+
field: firstSort.field,
|
|
948
|
+
direction: firstSort.dir === 'desc' ? 'desc' : 'asc'
|
|
949
|
+
};
|
|
950
|
+
return;
|
|
956
951
|
}
|
|
957
952
|
}
|
|
958
953
|
// No sort defined — reset to prevent stale sort from previous view
|