@memberjunction/ng-entity-viewer 5.3.1 → 5.4.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.
Files changed (24) hide show
  1. package/dist/__tests__/highlight.test.js.map +1 -1
  2. package/dist/__tests__/index.test.js.map +1 -1
  3. package/dist/lib/aggregate-panel/aggregate-panel.component.js.map +1 -1
  4. package/dist/lib/aggregate-setup-dialog/aggregate-setup-dialog.component.js.map +1 -1
  5. package/dist/lib/confirm-dialog/confirm-dialog.component.js.map +1 -1
  6. package/dist/lib/duplicate-view-dialog/duplicate-view-dialog.component.js.map +1 -1
  7. package/dist/lib/entity-cards/entity-cards.component.js.map +1 -1
  8. package/dist/lib/entity-data-grid/entity-data-grid.component.js.map +1 -1
  9. package/dist/lib/entity-data-grid/events/grid-events.js.map +1 -1
  10. package/dist/lib/entity-data-grid/models/grid-types.js.map +1 -1
  11. package/dist/lib/entity-record-detail-panel/entity-record-detail-panel.component.js.map +1 -1
  12. package/dist/lib/entity-viewer/entity-viewer.component.js.map +1 -1
  13. package/dist/lib/pagination/pagination.component.js.map +1 -1
  14. package/dist/lib/pill/pill.component.js.map +1 -1
  15. package/dist/lib/quick-save-dialog/quick-save-dialog.component.js.map +1 -1
  16. package/dist/lib/shared-view-warning-dialog/shared-view-warning-dialog.component.js.map +1 -1
  17. package/dist/lib/types.js.map +1 -1
  18. package/dist/lib/utils/highlight.util.js.map +1 -1
  19. package/dist/lib/utils/record.util.js.map +1 -1
  20. package/dist/lib/view-config-panel/view-config-panel.component.js.map +1 -1
  21. package/dist/lib/view-header/view-header.component.js.map +1 -1
  22. package/dist/module.js.map +1 -1
  23. package/dist/public-api.js.map +1 -1
  24. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"view-config-panel.component.js","sourceRoot":"","sources":["../../../src/lib/view-config-panel/view-config-panel.component.ts","../../../src/lib/view-config-panel/view-config-panel.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-config-panel.component.js","sourceRoot":"","sources":["../../../src/lib/view-config-panel/view-config-panel.component.ts","../../../src/lib/view-config-panel/view-config-panel.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnChanges, OnInit, SimpleChanges, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { EntityInfo, EntityFieldInfo, Metadata } from '@memberjunction/core';\nimport {\n MJUserViewEntityExtended,\n ViewColumnInfo,\n ViewGridState,\n ViewGridColumnSetting,\n ColumnFormat,\n ColumnTextStyle,\n ColumnConditionalRule,\n ViewGridAggregatesConfig,\n ViewGridAggregate,\n DEFAULT_AGGREGATE_DISPLAY,\n UserInfoEngine\n} from '@memberjunction/core-entities';\nimport {\n CompositeFilterDescriptor,\n FilterFieldInfo,\n FilterFieldType,\n createEmptyFilter\n} from '@memberjunction/ng-filter-builder';\nimport { ViewConfigSummary } from '../types';\n\n/**\n * Column configuration for the view (internal use)\n */\nexport interface ColumnConfig {\n fieldId: string;\n fieldName: string;\n /** Original display name from entity metadata */\n displayName: string;\n /** User-defined custom display name (overrides displayName when set) */\n userDisplayName?: string;\n visible: boolean;\n width: number | null;\n orderIndex: number;\n field: EntityFieldInfo;\n /** Column formatting configuration */\n format?: ColumnFormat;\n}\n\n/**\n * Sort item for multi-column sorting\n */\nexport interface SortItem {\n field: string;\n direction: 'asc' | 'desc';\n}\n\n/**\n * Event emitted when saving the view\n */\nexport interface ViewSaveEvent {\n name: string;\n description: string;\n isShared: boolean;\n saveAsNew: boolean;\n columns: ColumnConfig[];\n /** @deprecated Use sortItems instead for multi-sort support */\n sortField: string | null;\n /** @deprecated Use sortItems instead for multi-sort support */\n sortDirection: 'asc' | 'desc';\n /** Multi-column sort configuration (ordered by priority) */\n sortItems: SortItem[];\n smartFilterEnabled: boolean;\n smartFilterPrompt: string;\n /** Traditional filter state in Kendo-compatible JSON format */\n filterState: CompositeFilterDescriptor | null;\n /** Aggregates configuration */\n aggregatesConfig: ViewGridAggregatesConfig | null;\n}\n\n/**\n * ViewConfigPanelComponent - Sliding panel for configuring view settings\n *\n * Features:\n * - Column visibility and ordering with drag-drop\n * - Column formatting (number, currency, date, etc.)\n * - Sort configuration\n * - View name and description editing\n * - Share settings\n * - Save / Save As New / Cancel actions\n */\n@Component({\n standalone: false,\n selector: 'mj-view-config-panel',\n templateUrl: './view-config-panel.component.html',\n styleUrls: ['./view-config-panel.component.css']\n})\nexport class ViewConfigPanelComponent implements OnInit, OnChanges {\n /**\n * The entity being viewed\n */\n @Input() entity: EntityInfo | null = null;\n\n /**\n * The current view entity (null for default view)\n */\n @Input() viewEntity: MJUserViewEntityExtended | null = null;\n\n /**\n * Whether the panel is open\n */\n @Input() isOpen: boolean = false;\n\n /**\n * Current grid state from the grid (includes live column widths/order from user interaction)\n * This takes precedence over viewEntity.Columns for showing current state\n */\n @Input() currentGridState: ViewGridState | null = null;\n\n /**\n * Sample data for column format preview (first few records)\n */\n @Input() sampleData: Record<string, unknown>[] = [];\n\n /**\n * Emitted when the panel should close\n */\n @Output() close = new EventEmitter<void>();\n\n /**\n * Emitted when the view should be saved\n */\n @Output() save = new EventEmitter<ViewSaveEvent>();\n\n /**\n * Emitted when default view settings should be saved to user settings\n * (Used for dynamic/default views that persist to MJ: User Settings)\n */\n @Output() saveDefaults = new EventEmitter<ViewSaveEvent>();\n\n /**\n * Emitted when the view should be deleted\n */\n @Output() delete = new EventEmitter<void>();\n\n /**\n * Emitted when filter dialog should be opened (at dashboard level for full width)\n */\n @Output() openFilterDialogRequest = new EventEmitter<{\n filterState: CompositeFilterDescriptor;\n filterFields: FilterFieldInfo[];\n }>();\n\n /**\n * Filter state from external dialog (set by parent after dialog closes)\n */\n @Input() externalFilterState: CompositeFilterDescriptor | null = null;\n\n /**\n * When true, auto-focus on Settings tab when panel opens (BUG-011: forward saveAsNew intent)\n */\n @Input() DefaultSaveAsNew: boolean = false;\n\n /**\n * Emitted when user wants to duplicate the current view (F-005)\n */\n @Output() duplicate = new EventEmitter<void>();\n\n // Form state\n public viewName: string = '';\n public viewDescription: string = '';\n public isShared: boolean = false;\n public columns: ColumnConfig[] = [];\n /** @deprecated Use sortItems instead */\n public sortField: string | null = null;\n /** @deprecated Use sortItems instead */\n public sortDirection: 'asc' | 'desc' = 'asc';\n /** Multi-column sort configuration (ordered by priority) */\n public sortItems: SortItem[] = [];\n\n // Sort drag state\n public draggedSortItem: SortItem | null = null;\n public dropTargetSortItem: SortItem | null = null;\n public sortDropPosition: 'before' | 'after' | null = null;\n\n // Available sort directions for dropdown\n public sortDirections = [\n { name: 'Ascending', value: 'asc' as const },\n { name: 'Descending', value: 'desc' as const }\n ];\n\n // Smart Filter state\n public smartFilterEnabled: boolean = false;\n public smartFilterPrompt: string = '';\n public smartFilterExplanation: string = '';\n\n // Traditional Filter state\n public filterState: CompositeFilterDescriptor = createEmptyFilter();\n public filterFields: FilterFieldInfo[] = [];\n\n // Filter mode: 'smart' or 'traditional' (mutually exclusive)\n public filterMode: 'smart' | 'traditional' = 'smart';\n\n // Aggregates state\n public aggregates: ViewGridAggregate[] = [];\n public showAggregateDialog: boolean = false;\n public editingAggregate: ViewGridAggregate | null = null;\n\n // Saved filter state for mode switching (BUG-006: preserve both modes' data)\n private savedSmartFilterPrompt: string = '';\n private savedTraditionalFilter: CompositeFilterDescriptor = createEmptyFilter();\n\n // Filter mode switch confirmation (BUG-006)\n public showFilterModeSwitchConfirm: boolean = false;\n public pendingFilterModeSwitch: 'smart' | 'traditional' | null = null;\n\n // Local saving guard (BUG-003: race condition on double-click)\n private _localSaving: boolean = false;\n\n // UI state\n public activeTab: 'columns' | 'sorting' | 'filters' | 'aggregates' | 'settings' = 'columns';\n @Input() isSaving: boolean = false;\n public columnSearchText: string = '';\n\n // Drag state for column reordering\n public draggedColumn: ColumnConfig | null = null;\n public dropTargetColumn: ColumnConfig | null = null;\n public dropPosition: 'before' | 'after' | null = null;\n\n // Column format editing state\n public formatEditingColumn: ColumnConfig | null = null;\n\n // Panel resize state\n public isResizing: boolean = false;\n public panelWidth: number = 520;\n private readonly MIN_PANEL_WIDTH = 360;\n private readonly MAX_PANEL_WIDTH = 800;\n private readonly DEFAULT_PANEL_WIDTH = 520;\n /** Width threshold below which tabs show icons only */\n private readonly ICON_ONLY_THRESHOLD = 440;\n private readonly PANEL_WIDTH_SETTING_KEY = 'view-config-panel/width';\n private resizeStartX: number = 0;\n private resizeStartWidth: number = 0;\n\n /**\n * Whether tabs should show icons only (narrow panel mode)\n */\n get isIconOnlyMode(): boolean {\n return this.panelWidth < this.ICON_ONLY_THRESHOLD;\n }\n\n private metadata = new Metadata();\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /**\n * Handle keyboard shortcuts\n * Escape: Close the panel or format sub-panel\n */\n @HostListener('document:keydown.escape')\n handleEscape(): void {\n if (this.formatEditingColumn) {\n this.closeFormatEditor();\n } else if (this.isOpen) {\n this.onClose();\n }\n }\n\n // ========================================\n // PANEL RESIZE HANDLERS\n // ========================================\n\n /**\n * Start resizing the panel\n */\n onResizeStart(event: MouseEvent): void {\n event.preventDefault();\n this.isResizing = true;\n this.resizeStartX = event.clientX;\n this.resizeStartWidth = this.panelWidth;\n\n // Add document-level listeners for mouse move and up\n document.addEventListener('mousemove', this.onResizeMove);\n document.addEventListener('mouseup', this.onResizeEnd);\n document.body.style.cursor = 'ew-resize';\n document.body.style.userSelect = 'none';\n }\n\n /**\n * Handle resize movement (bound to document)\n */\n private onResizeMove = (event: MouseEvent): void => {\n if (!this.isResizing) return;\n\n // Calculate new width (panel is on the right, so moving left increases width)\n const deltaX = this.resizeStartX - event.clientX;\n let newWidth = this.resizeStartWidth + deltaX;\n\n // Clamp to min/max bounds\n newWidth = Math.max(this.MIN_PANEL_WIDTH, Math.min(this.MAX_PANEL_WIDTH, newWidth));\n\n this.panelWidth = newWidth;\n this.cdr.detectChanges();\n };\n\n /**\n * End resizing the panel (bound to document)\n */\n private onResizeEnd = (): void => {\n this.isResizing = false;\n document.removeEventListener('mousemove', this.onResizeMove);\n document.removeEventListener('mouseup', this.onResizeEnd);\n document.body.style.cursor = '';\n document.body.style.userSelect = '';\n // Persist the panel width to user settings\n this.savePanelWidth();\n this.cdr.detectChanges();\n };\n\n ngOnInit(): void {\n this.loadSavedPanelWidth();\n this.initializeFromEntity();\n }\n\n /**\n * Load saved panel width from user settings\n */\n private loadSavedPanelWidth(): void {\n try {\n const savedWidth = UserInfoEngine.Instance.GetSetting(this.PANEL_WIDTH_SETTING_KEY);\n if (savedWidth) {\n const width = parseInt(savedWidth, 10);\n if (!isNaN(width) && width >= this.MIN_PANEL_WIDTH && width <= this.MAX_PANEL_WIDTH) {\n this.panelWidth = width;\n }\n }\n } catch (error) {\n console.warn('[ViewConfigPanel] Failed to load saved panel width:', error);\n }\n }\n\n /**\n * Save panel width to user settings\n */\n private async savePanelWidth(): Promise<void> {\n try {\n await UserInfoEngine.Instance.SetSetting(this.PANEL_WIDTH_SETTING_KEY, String(this.panelWidth));\n } catch (error) {\n console.warn('[ViewConfigPanel] Failed to save panel width:', error);\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Reset to first tab and clear search when panel opens\n if (changes['isOpen'] && this.isOpen) {\n // BUG-011: If DefaultSaveAsNew is set, open on Settings tab with name focused\n this.activeTab = this.DefaultSaveAsNew ? 'settings' : 'columns';\n this.columnSearchText = '';\n this.formatEditingColumn = null;\n this._localSaving = false;\n // Also close any open aggregate dialog\n this.showAggregateDialog = false;\n this.editingAggregate = null;\n // Close filter mode switch confirm\n this.showFilterModeSwitchConfirm = false;\n this.pendingFilterModeSwitch = null;\n // Re-initialize from entity to get fresh state\n this.initializeFromEntity();\n }\n\n // BUG-003: Reset local saving guard when isSaving transitions from true to false\n if (changes['isSaving'] && !this.isSaving && changes['isSaving'].previousValue === true) {\n this._localSaving = false;\n }\n\n if (changes['entity'] || changes['viewEntity'] || changes['currentGridState']) {\n this.initializeFromEntity();\n }\n\n // Apply external filter state when it changes (from dashboard-level dialog)\n if (changes['externalFilterState'] && this.externalFilterState) {\n this.filterState = this.externalFilterState;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Initialize form state from entity and view\n * Priority for column state: currentGridState > viewEntity.Columns > entity defaults\n */\n private initializeFromEntity(): void {\n if (!this.entity) {\n this.columns = [];\n return;\n }\n\n // Initialize columns from entity fields (including __mj_ fields for audit/timestamp info)\n this.columns = this.entity.Fields\n .map((field, index) => ({\n fieldId: field.ID,\n fieldName: field.Name,\n displayName: field.DisplayNameOrName,\n userDisplayName: undefined,\n visible: field.DefaultInView,\n width: field.DefaultColumnWidth || null,\n orderIndex: index,\n field,\n format: undefined\n }));\n\n // Priority 1: Use currentGridState if available (reflects live grid state including resizes)\n if (this.currentGridState?.columnSettings && this.currentGridState.columnSettings.length > 0) {\n this.applyGridStateToColumns(this.currentGridState.columnSettings);\n\n // Also apply sort from currentGridState (supports multi-sort)\n if (this.currentGridState.sortSettings && this.currentGridState.sortSettings.length > 0) {\n this.sortItems = this.currentGridState.sortSettings.map(s => ({\n field: s.field,\n direction: s.dir\n }));\n // Keep legacy fields in sync for backward compatibility\n this.sortField = this.currentGridState.sortSettings[0].field;\n this.sortDirection = this.currentGridState.sortSettings[0].dir;\n } else {\n this.sortItems = [];\n }\n }\n // Priority 2: If we have a view, apply its column configuration\n else if (this.viewEntity) {\n const viewColumns = this.viewEntity.Columns;\n if (viewColumns && viewColumns.length > 0) {\n // Mark all columns as hidden initially\n this.columns.forEach(c => c.visible = false);\n\n // Apply view column settings\n viewColumns.forEach((vc, idx) => {\n const column = this.columns.find(c => c.fieldName.toLowerCase() === vc.Name?.toLowerCase());\n if (column) {\n column.visible = !vc.hidden;\n column.width = vc.width || null;\n column.orderIndex = vc.orderIndex ?? idx;\n // Apply userDisplayName if present\n if (vc.userDisplayName) {\n column.userDisplayName = vc.userDisplayName;\n }\n // Apply format if present\n if (vc.format) {\n column.format = vc.format;\n }\n }\n });\n\n // Sort by orderIndex\n this.columns.sort((a, b) => a.orderIndex - b.orderIndex);\n }\n\n // Apply view's sort configuration (supports multi-sort)\n const sortInfo = this.viewEntity.ViewSortInfo;\n if (sortInfo && sortInfo.length > 0) {\n this.sortItems = sortInfo.map(s => ({\n field: s.field,\n direction: s.direction === 'Desc' ? 'desc' as const : 'asc' as const\n }));\n // Keep legacy fields in sync for backward compatibility\n this.sortField = sortInfo[0].field;\n this.sortDirection = sortInfo[0].direction === 'Desc' ? 'desc' : 'asc';\n } else {\n this.sortItems = [];\n }\n }\n\n // Initialize filter fields from entity\n this.filterFields = this.buildFilterFields();\n\n // Apply view entity metadata (name, description, etc.) if available\n if (this.viewEntity) {\n this.viewName = this.viewEntity.Name;\n this.viewDescription = this.viewEntity.Description || '';\n this.isShared = this.viewEntity.IsShared;\n\n // Apply view's smart filter configuration\n this.smartFilterEnabled = this.viewEntity.SmartFilterEnabled || false;\n this.smartFilterPrompt = this.viewEntity.SmartFilterPrompt || '';\n this.smartFilterExplanation = this.viewEntity.SmartFilterExplanation || '';\n\n // Apply view's traditional filter state\n this.filterState = this.parseFilterState(this.viewEntity.FilterState);\n\n // Set filter mode based on which type of filter is active\n // Smart filter takes precedence if enabled\n if (this.smartFilterEnabled && this.smartFilterPrompt) {\n this.filterMode = 'smart';\n } else if (this.getFilterCount() > 0) {\n this.filterMode = 'traditional';\n } else {\n // Default to smart mode for new/empty filters (promote AI filtering)\n this.filterMode = 'smart';\n this.smartFilterEnabled = true;\n }\n } else {\n // Default view - use entity defaults\n this.viewName = '';\n this.viewDescription = '';\n this.isShared = false;\n if (!this.currentGridState?.sortSettings?.length) {\n this.sortField = null;\n this.sortDirection = 'asc';\n this.sortItems = [];\n }\n this.smartFilterPrompt = '';\n this.smartFilterExplanation = '';\n this.filterState = createEmptyFilter();\n // Default to smart mode (promote AI filtering)\n this.filterMode = 'smart';\n this.smartFilterEnabled = true;\n }\n\n // Load aggregates from currentGridState if available\n if (this.currentGridState?.aggregates?.expressions) {\n this.aggregates = [...this.currentGridState.aggregates.expressions];\n } else {\n this.aggregates = [];\n }\n\n this.cdr.detectChanges();\n }\n\n /**\n * Build filter fields from entity fields (including __mj_ fields for filtering by timestamps)\n */\n private buildFilterFields(): FilterFieldInfo[] {\n if (!this.entity) return [];\n\n return this.entity.Fields\n .filter(f => !f.IsBinaryFieldType)\n .map(field => ({\n name: field.Name,\n displayName: field.DisplayNameOrName,\n type: this.mapFieldType(field),\n lookupEntityName: field.RelatedEntity || undefined,\n valueList: field.ValueListType === 'List' && field.EntityFieldValues?.length > 0\n ? field.EntityFieldValues.map(v => ({ value: v.Value, label: v.Value }))\n : undefined\n }));\n }\n\n /**\n * Map entity field type to filter field type\n */\n private mapFieldType(field: EntityFieldInfo): FilterFieldType {\n // Check for lookup first - RelatedEntity is a string (entity name) if it's a lookup field\n if (field.RelatedEntity) {\n return 'lookup';\n }\n\n // Map based on SQL type\n const sqlType = field.Type.toLowerCase();\n if (sqlType.includes('bit') || sqlType === 'boolean') {\n return 'boolean';\n }\n if (sqlType.includes('date') || sqlType.includes('time')) {\n return 'date';\n }\n if (sqlType.includes('int') || sqlType.includes('decimal') ||\n sqlType.includes('numeric') || sqlType.includes('float') ||\n sqlType.includes('real') || sqlType.includes('money')) {\n return 'number';\n }\n return 'string';\n }\n\n /**\n * Parse the filter state from JSON string\n */\n private parseFilterState(filterStateJson: string | null | undefined): CompositeFilterDescriptor {\n if (!filterStateJson) {\n return createEmptyFilter();\n }\n try {\n const parsed = JSON.parse(filterStateJson);\n // Validate it has the expected structure\n if (parsed && typeof parsed === 'object' && 'logic' in parsed && 'filters' in parsed) {\n return parsed as CompositeFilterDescriptor;\n }\n return createEmptyFilter();\n } catch {\n return createEmptyFilter();\n }\n }\n\n /**\n * Handle filter state change from filter builder\n */\n onFilterChange(filter: CompositeFilterDescriptor): void {\n this.filterState = filter;\n this.cdr.detectChanges();\n }\n\n /**\n * Open the filter dialog - emits event to parent (dashboard) which renders the dialog at viewport level\n */\n openFilterDialog(): void {\n this.openFilterDialogRequest.emit({\n filterState: this.filterState,\n filterFields: this.filterFields\n });\n }\n\n /**\n * Get the count of active filter rules\n */\n getFilterCount(): number {\n return this.countFilters(this.filterState);\n }\n\n /**\n * Count filters recursively\n */\n private countFilters(filter: CompositeFilterDescriptor): number {\n let count = 0;\n for (const item of filter.filters || []) {\n if ('logic' in item && 'filters' in item) {\n count += this.countFilters(item as CompositeFilterDescriptor);\n } else if ('field' in item) {\n count++;\n }\n }\n return count;\n }\n\n /**\n * Get a human-readable summary of the filter state\n */\n getFilterSummary(): string {\n const count = this.getFilterCount();\n if (count === 0) {\n return 'No filters applied';\n }\n return `${count} filter${count !== 1 ? 's' : ''} active`;\n }\n\n /**\n * Clear all filters\n */\n clearFilters(): void {\n this.filterState = createEmptyFilter();\n this.cdr.detectChanges();\n }\n\n /**\n * Apply grid state column settings to the columns array\n */\n private applyGridStateToColumns(gridColumns: ViewGridColumnSetting[]): void {\n // Mark all columns as hidden initially\n this.columns.forEach(c => c.visible = false);\n\n // Apply grid state column settings\n gridColumns.forEach((gc, idx) => {\n const column = this.columns.find(c => c.fieldName.toLowerCase() === gc.Name.toLowerCase());\n if (column) {\n column.visible = !gc.hidden;\n column.width = gc.width || null;\n column.orderIndex = gc.orderIndex ?? idx;\n if (gc.DisplayName) {\n column.displayName = gc.DisplayName;\n }\n // Apply userDisplayName if present\n if (gc.userDisplayName) {\n column.userDisplayName = gc.userDisplayName;\n }\n // Apply format if present\n if (gc.format) {\n column.format = gc.format;\n }\n }\n });\n\n // Sort by orderIndex\n this.columns.sort((a, b) => a.orderIndex - b.orderIndex);\n }\n\n /**\n * Get visible columns\n */\n get visibleColumns(): ColumnConfig[] {\n return this.columns.filter(c => c.visible);\n }\n\n /**\n * Get hidden columns\n */\n get hiddenColumns(): ColumnConfig[] {\n return this.columns.filter(c => !c.visible);\n }\n\n /**\n * Get filtered columns for search\n */\n get filteredHiddenColumns(): ColumnConfig[] {\n if (!this.columnSearchText) {\n return this.hiddenColumns;\n }\n const search = this.columnSearchText.toLowerCase();\n return this.hiddenColumns.filter(c =>\n c.displayName.toLowerCase().includes(search) ||\n c.fieldName.toLowerCase().includes(search)\n );\n }\n\n /**\n * Get sortable fields for dropdown (including __mj_ fields for sorting by timestamps)\n */\n get sortableFields(): EntityFieldInfo[] {\n if (!this.entity) return [];\n return this.entity.Fields.filter(f =>\n !f.IsBinaryFieldType // Exclude binary fields from sorting\n );\n }\n\n /**\n * Check if the current user can edit the view\n */\n get canEdit(): boolean {\n if (!this.viewEntity) return true; // Can always create new\n return this.viewEntity.UserCanEdit;\n }\n\n /**\n * Check if the current user can delete the view\n */\n get canDelete(): boolean {\n if (!this.viewEntity) return false; // Can't delete default\n return this.viewEntity.UserCanDelete;\n }\n\n /**\n * Toggle column visibility\n */\n toggleColumnVisibility(column: ColumnConfig): void {\n column.visible = !column.visible;\n if (column.visible) {\n // Add to end of visible columns\n column.orderIndex = this.visibleColumns.length;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Move column up in order\n */\n moveColumnUp(column: ColumnConfig): void {\n const visibleCols = this.visibleColumns;\n const currentIndex = visibleCols.indexOf(column);\n if (currentIndex > 0) {\n const prevColumn = visibleCols[currentIndex - 1];\n const tempOrder = column.orderIndex;\n column.orderIndex = prevColumn.orderIndex;\n prevColumn.orderIndex = tempOrder;\n this.columns.sort((a, b) => a.orderIndex - b.orderIndex);\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Move column down in order\n */\n moveColumnDown(column: ColumnConfig): void {\n const visibleCols = this.visibleColumns;\n const currentIndex = visibleCols.indexOf(column);\n if (currentIndex < visibleCols.length - 1) {\n const nextColumn = visibleCols[currentIndex + 1];\n const tempOrder = column.orderIndex;\n column.orderIndex = nextColumn.orderIndex;\n nextColumn.orderIndex = tempOrder;\n this.columns.sort((a, b) => a.orderIndex - b.orderIndex);\n this.cdr.detectChanges();\n }\n }\n\n // ========================================\n // DRAG AND DROP WITH DROP INDICATOR\n // ========================================\n\n /**\n * Handle drag start for column reordering\n */\n onDragStart(event: DragEvent, column: ColumnConfig): void {\n this.draggedColumn = column;\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', column.fieldId);\n }\n // Add dragging class to the element\n (event.target as HTMLElement).classList.add('dragging');\n }\n\n /**\n * Handle drag over for column reordering - determines drop position\n */\n onDragOver(event: DragEvent, column: ColumnConfig): void {\n event.preventDefault();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'move';\n }\n\n if (!this.draggedColumn || this.draggedColumn === column) {\n this.dropTargetColumn = null;\n this.dropPosition = null;\n return;\n }\n\n // Calculate if we're in the top or bottom half of the target\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const y = event.clientY - rect.top;\n const threshold = rect.height / 2;\n\n this.dropTargetColumn = column;\n this.dropPosition = y < threshold ? 'before' : 'after';\n }\n\n /**\n * Handle drag leave - clear drop indicator\n */\n onDragLeave(event: DragEvent): void {\n // Only clear if we're leaving the column item, not entering a child element\n const relatedTarget = event.relatedTarget as HTMLElement;\n const currentTarget = event.currentTarget as HTMLElement;\n if (!currentTarget.contains(relatedTarget)) {\n this.dropTargetColumn = null;\n this.dropPosition = null;\n }\n }\n\n /**\n * Handle drop for column reordering\n */\n onDrop(event: DragEvent, targetColumn: ColumnConfig): void {\n event.preventDefault();\n\n if (this.draggedColumn && this.draggedColumn !== targetColumn && this.dropPosition) {\n const visibleCols = this.visibleColumns;\n const draggedIndex = visibleCols.indexOf(this.draggedColumn);\n let targetIndex = visibleCols.indexOf(targetColumn);\n\n // Adjust target index based on drop position\n if (this.dropPosition === 'after') {\n targetIndex++;\n }\n\n // If dragging from before target, adjust for removal\n if (draggedIndex < targetIndex) {\n targetIndex--;\n }\n\n // Reorder the columns\n this.reorderColumn(this.draggedColumn, targetIndex);\n }\n\n this.clearDragState();\n }\n\n /**\n * Handle drag end\n */\n onDragEnd(event: DragEvent): void {\n (event.target as HTMLElement).classList.remove('dragging');\n this.clearDragState();\n }\n\n /**\n * Clear all drag state\n */\n private clearDragState(): void {\n this.draggedColumn = null;\n this.dropTargetColumn = null;\n this.dropPosition = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Reorder a column to a new position\n */\n private reorderColumn(column: ColumnConfig, newIndex: number): void {\n const visibleCols = this.visibleColumns;\n\n // Remove from current position\n const currentIndex = visibleCols.indexOf(column);\n if (currentIndex === newIndex) return;\n\n // Update order indices\n visibleCols.forEach((col, idx) => {\n if (col === column) {\n col.orderIndex = newIndex;\n } else if (currentIndex < newIndex) {\n // Dragging down - shift items between old and new position up\n if (idx > currentIndex && idx <= newIndex) {\n col.orderIndex = idx - 1;\n }\n } else {\n // Dragging up - shift items between new and old position down\n if (idx >= newIndex && idx < currentIndex) {\n col.orderIndex = idx + 1;\n }\n }\n });\n\n // Re-sort all columns by orderIndex\n this.columns.sort((a, b) => a.orderIndex - b.orderIndex);\n this.cdr.detectChanges();\n }\n\n /**\n * Check if drop indicator should show before a column\n */\n isDropBefore(column: ColumnConfig): boolean {\n return this.dropTargetColumn === column && this.dropPosition === 'before';\n }\n\n /**\n * Check if drop indicator should show after a column\n */\n isDropAfter(column: ColumnConfig): boolean {\n return this.dropTargetColumn === column && this.dropPosition === 'after';\n }\n\n // ========================================\n // MULTI-SORT MANAGEMENT\n // ========================================\n\n /**\n * Add a new sort level\n */\n addSortLevel(): void {\n // Find the first sortable field not already in use\n const usedFields = new Set(this.sortItems.map(s => s.field));\n const availableField = this.sortableFields.find(f => !usedFields.has(f.Name));\n\n if (availableField) {\n this.sortItems.push({\n field: availableField.Name,\n direction: 'asc'\n });\n this.syncLegacySortFields();\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Remove a sort level\n */\n removeSortLevel(sortItem: SortItem): void {\n const index = this.sortItems.indexOf(sortItem);\n if (index > -1) {\n this.sortItems.splice(index, 1);\n this.syncLegacySortFields();\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Get the display name for a field\n */\n getFieldDisplayName(fieldName: string): string {\n const field = this.sortableFields.find(f => f.Name === fieldName);\n return field?.DisplayNameOrName || fieldName;\n }\n\n /**\n * Get fields available for a sort item (excludes already selected fields except current)\n */\n getAvailableFieldsForSort(currentSortItem: SortItem): EntityFieldInfo[] {\n const usedFields = new Set(this.sortItems.map(s => s.field));\n return this.sortableFields.filter(f =>\n f.Name === currentSortItem.field || !usedFields.has(f.Name)\n );\n }\n\n /**\n * Handle sort field change\n */\n onSortFieldChange(sortItem: SortItem, fieldName: string): void {\n sortItem.field = fieldName;\n this.syncLegacySortFields();\n this.cdr.detectChanges();\n }\n\n /**\n * Handle sort direction change\n */\n onSortDirectionChange(sortItem: SortItem, direction: 'asc' | 'desc'): void {\n sortItem.direction = direction;\n this.syncLegacySortFields();\n this.cdr.detectChanges();\n }\n\n /**\n * Keep legacy sortField/sortDirection in sync with sortItems[0]\n */\n private syncLegacySortFields(): void {\n if (this.sortItems.length > 0) {\n this.sortField = this.sortItems[0].field;\n this.sortDirection = this.sortItems[0].direction;\n } else {\n this.sortField = null;\n this.sortDirection = 'asc';\n }\n }\n\n // ----------------------------------------\n // Sort Drag & Drop\n // ----------------------------------------\n\n /**\n * Handle drag start for sort item reordering\n */\n onSortDragStart(event: DragEvent, sortItem: SortItem): void {\n this.draggedSortItem = sortItem;\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n event.dataTransfer.setData('text/plain', sortItem.field);\n }\n (event.target as HTMLElement).classList.add('dragging');\n }\n\n /**\n * Handle drag over for sort item reordering\n */\n onSortDragOver(event: DragEvent, sortItem: SortItem): void {\n event.preventDefault();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'move';\n }\n\n if (!this.draggedSortItem || this.draggedSortItem === sortItem) {\n this.dropTargetSortItem = null;\n this.sortDropPosition = null;\n return;\n }\n\n const rect = (event.currentTarget as HTMLElement).getBoundingClientRect();\n const y = event.clientY - rect.top;\n const threshold = rect.height / 2;\n\n this.dropTargetSortItem = sortItem;\n this.sortDropPosition = y < threshold ? 'before' : 'after';\n }\n\n /**\n * Handle drag leave for sort item\n */\n onSortDragLeave(event: DragEvent): void {\n const relatedTarget = event.relatedTarget as HTMLElement;\n const currentTarget = event.currentTarget as HTMLElement;\n if (!currentTarget.contains(relatedTarget)) {\n this.dropTargetSortItem = null;\n this.sortDropPosition = null;\n }\n }\n\n /**\n * Handle drop for sort item reordering\n */\n onSortDrop(event: DragEvent, targetSortItem: SortItem): void {\n event.preventDefault();\n\n if (this.draggedSortItem && this.draggedSortItem !== targetSortItem && this.sortDropPosition) {\n const draggedIndex = this.sortItems.indexOf(this.draggedSortItem);\n let targetIndex = this.sortItems.indexOf(targetSortItem);\n\n // Adjust target index based on drop position\n if (this.sortDropPosition === 'after') {\n targetIndex++;\n }\n\n // If dragging from before target, adjust for removal\n if (draggedIndex < targetIndex) {\n targetIndex--;\n }\n\n // Remove from old position\n this.sortItems.splice(draggedIndex, 1);\n // Insert at new position\n this.sortItems.splice(targetIndex, 0, this.draggedSortItem);\n\n this.syncLegacySortFields();\n }\n\n this.clearSortDragState();\n }\n\n /**\n * Handle drag end for sort item\n */\n onSortDragEnd(event: DragEvent): void {\n (event.target as HTMLElement).classList.remove('dragging');\n this.clearSortDragState();\n }\n\n /**\n * Clear sort drag state\n */\n private clearSortDragState(): void {\n this.draggedSortItem = null;\n this.dropTargetSortItem = null;\n this.sortDropPosition = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Check if drop indicator should show before a sort item\n */\n isSortDropBefore(sortItem: SortItem): boolean {\n return this.dropTargetSortItem === sortItem && this.sortDropPosition === 'before';\n }\n\n /**\n * Check if drop indicator should show after a sort item\n */\n isSortDropAfter(sortItem: SortItem): boolean {\n return this.dropTargetSortItem === sortItem && this.sortDropPosition === 'after';\n }\n\n // ========================================\n // COLUMN FORMAT EDITOR\n // ========================================\n\n /**\n * Open the format editor for a column\n */\n openFormatEditor(column: ColumnConfig): void {\n // Initialize format if not present\n if (!column.format) {\n column.format = this.getDefaultFormat(column.field);\n }\n this.formatEditingColumn = column;\n this.cdr.detectChanges();\n }\n\n /**\n * Close the format editor\n */\n closeFormatEditor(): void {\n this.formatEditingColumn = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Get default format based on field type\n */\n private getDefaultFormat(field: EntityFieldInfo): ColumnFormat {\n const sqlType = field.Type.toLowerCase();\n\n if (sqlType.includes('money') || sqlType.includes('currency')) {\n return { type: 'currency', decimals: 2, currencyCode: 'USD', thousandsSeparator: true };\n }\n if (sqlType.includes('percent')) {\n return { type: 'percent', decimals: 1 };\n }\n if (sqlType.includes('decimal') || sqlType.includes('numeric') || sqlType.includes('float') || sqlType.includes('real')) {\n return { type: 'number', decimals: 2, thousandsSeparator: true };\n }\n if (sqlType.includes('int')) {\n return { type: 'number', decimals: 0, thousandsSeparator: true };\n }\n if (sqlType.includes('datetime')) {\n return { type: 'datetime', dateFormat: 'medium' };\n }\n if (sqlType.includes('date')) {\n return { type: 'date', dateFormat: 'medium' };\n }\n if (sqlType.includes('bit') || sqlType === 'boolean') {\n return { type: 'boolean', trueLabel: 'Yes', falseLabel: 'No', booleanDisplay: 'text' };\n }\n\n return { type: 'auto' };\n }\n\n /**\n * Check if a column has custom formatting applied\n */\n hasCustomFormat(column: ColumnConfig): boolean {\n return !!column.format && column.format.type !== 'auto';\n }\n\n /**\n * Clear formatting for a column\n */\n clearColumnFormat(column: ColumnConfig): void {\n column.format = undefined;\n this.cdr.detectChanges();\n }\n\n /**\n * Get sample values for preview\n */\n getSampleValues(column: ColumnConfig): unknown[] {\n if (!this.sampleData || this.sampleData.length === 0) {\n return this.getPlaceholderSamples(column.field);\n }\n return this.sampleData\n .slice(0, 5)\n .map(row => row[column.fieldName])\n .filter(v => v != null);\n }\n\n /**\n * Get placeholder sample values when no data available\n */\n private getPlaceholderSamples(field: EntityFieldInfo): unknown[] {\n const sqlType = field.Type.toLowerCase();\n\n if (sqlType.includes('money') || sqlType.includes('decimal') || sqlType.includes('numeric')) {\n return [1234.56, -567.89, 10000.00, 0.50, 999999.99];\n }\n if (sqlType.includes('int')) {\n return [42, 100, 1500, 0, -25];\n }\n if (sqlType.includes('date')) {\n const now = new Date();\n return [\n new Date(now.getTime() - 86400000),\n new Date(now.getTime() - 172800000),\n now,\n new Date(now.getTime() + 86400000),\n new Date(now.getTime() - 604800000)\n ];\n }\n if (sqlType.includes('bit') || sqlType === 'boolean') {\n return [true, false, true, false, true];\n }\n\n return ['Sample', 'Text', 'Values', 'Here', 'Preview'];\n }\n\n /**\n * Format a value for preview display\n */\n formatPreviewValue(value: unknown, format: ColumnFormat | undefined): string {\n if (value == null) return '—';\n if (!format || format.type === 'auto') return String(value);\n\n switch (format.type) {\n case 'number':\n return this.formatNumber(value as number, format);\n case 'currency':\n return this.formatCurrency(value as number, format);\n case 'percent':\n return this.formatPercent(value as number, format);\n case 'date':\n case 'datetime':\n return this.formatDate(value as Date, format);\n case 'boolean':\n return this.formatBoolean(value as boolean, format);\n default:\n return String(value);\n }\n }\n\n private formatNumber(value: number, format: ColumnFormat): string {\n const options: Intl.NumberFormatOptions = {\n minimumFractionDigits: format.decimals ?? 0,\n maximumFractionDigits: format.decimals ?? 0,\n useGrouping: format.thousandsSeparator ?? true\n };\n return new Intl.NumberFormat('en-US', options).format(value);\n }\n\n private formatCurrency(value: number, format: ColumnFormat): string {\n const options: Intl.NumberFormatOptions = {\n style: 'currency',\n currency: format.currencyCode || 'USD',\n minimumFractionDigits: format.decimals ?? 2,\n maximumFractionDigits: format.decimals ?? 2\n };\n return new Intl.NumberFormat('en-US', options).format(value);\n }\n\n private formatPercent(value: number, format: ColumnFormat): string {\n const options: Intl.NumberFormatOptions = {\n style: 'percent',\n minimumFractionDigits: format.decimals ?? 0,\n maximumFractionDigits: format.decimals ?? 0\n };\n // Assume value is already a percentage (e.g., 50 = 50%), divide by 100\n return new Intl.NumberFormat('en-US', options).format(value / 100);\n }\n\n private formatDate(value: Date, format: ColumnFormat): string {\n const date = value instanceof Date ? value : new Date(value);\n if (isNaN(date.getTime())) return String(value);\n\n // Parse format string - check for weekday variants\n const formatStr = format.dateFormat || 'medium';\n const includeWeekday = formatStr.includes('-weekday');\n const baseFormat = formatStr.replace('-weekday', '') as 'short' | 'medium' | 'long';\n\n let options: Intl.DateTimeFormatOptions;\n\n // Intl.DateTimeFormat doesn't allow combining dateStyle with weekday\n // So we must use individual components when weekday is requested\n if (includeWeekday) {\n if (baseFormat === 'short') {\n options = { weekday: 'short', month: 'numeric', day: 'numeric', year: '2-digit' };\n } else if (baseFormat === 'long') {\n options = { weekday: 'long', month: 'long', day: 'numeric', year: 'numeric' };\n } else {\n // medium\n options = { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric' };\n }\n if (format.type === 'datetime') {\n options.hour = 'numeric';\n options.minute = '2-digit';\n }\n } else {\n // No weekday - can use dateStyle shorthand\n options = {\n dateStyle: baseFormat === 'short' ? 'short' : baseFormat === 'long' ? 'long' : 'medium'\n };\n if (format.type === 'datetime') {\n options.timeStyle = 'short';\n }\n }\n\n return new Intl.DateTimeFormat('en-US', options).format(date);\n }\n\n private formatBoolean(value: boolean, format: ColumnFormat): string {\n return value ? (format.trueLabel || 'Yes') : (format.falseLabel || 'No');\n }\n\n // ========================================\n // CLOSE / SAVE / DELETE\n // ========================================\n\n /**\n * Close the panel\n */\n onClose(): void {\n this.close.emit();\n }\n\n /**\n * Check if filter state has any active filters\n */\n private hasActiveFilters(): boolean {\n return this.filterState?.filters?.length > 0;\n }\n\n // ========================================\n // VALIDATION (BUG-004)\n // ========================================\n\n /**\n * Get validation errors for the current form state\n */\n get ValidationErrors(): string[] {\n const errors: string[] = [];\n if (!this.viewName || !this.viewName.trim()) {\n errors.push('View name is required');\n }\n if (this.visibleColumns.length === 0) {\n errors.push('At least one column must be visible');\n }\n return errors;\n }\n\n /**\n * Whether the form is valid for saving\n */\n get IsValid(): boolean {\n return this.ValidationErrors.length === 0;\n }\n\n /**\n * Whether the form is valid for save-as-new (name can default to 'New View')\n */\n get IsValidForSaveAsNew(): boolean {\n return this.visibleColumns.length > 0;\n }\n\n /**\n * Build a ViewConfigSummary for quick-save preview (F-003)\n */\n BuildSummary(): ViewConfigSummary {\n return {\n ColumnCount: this.visibleColumns.length,\n FilterCount: this.filterMode === 'traditional' ? this.getFilterCount() : 0,\n SortCount: this.sortItems.length,\n SmartFilterActive: this.smartFilterEnabled && !!this.smartFilterPrompt.trim(),\n SmartFilterPrompt: this.smartFilterPrompt,\n AggregateCount: this.aggregates.filter(a => a.enabled !== false).length\n };\n }\n\n /**\n * Save the view\n */\n onSave(): void {\n // BUG-003: Guard against double-clicks with local flag\n if (this.isSaving || this._localSaving) return;\n // BUG-004: Validate before saving\n if (!this.IsValid) return;\n\n this._localSaving = true;\n this.save.emit({\n name: this.viewName,\n description: this.viewDescription,\n isShared: this.isShared,\n saveAsNew: false,\n columns: this.visibleColumns,\n sortField: this.sortField,\n sortDirection: this.sortDirection,\n sortItems: [...this.sortItems],\n smartFilterEnabled: this.smartFilterEnabled,\n smartFilterPrompt: this.smartFilterPrompt,\n filterState: this.hasActiveFilters() ? this.filterState : null,\n aggregatesConfig: this.buildAggregatesConfig()\n });\n }\n\n /**\n * Save as a new view\n */\n onSaveAsNew(): void {\n // BUG-003: Guard against double-clicks with local flag\n if (this.isSaving || this._localSaving) return;\n // BUG-004: Validate (name defaults to 'New View' if empty)\n if (!this.IsValidForSaveAsNew) return;\n\n this._localSaving = true;\n this.save.emit({\n name: this.viewName || 'New View',\n description: this.viewDescription,\n isShared: this.isShared,\n saveAsNew: true,\n columns: this.visibleColumns,\n sortField: this.sortField,\n sortDirection: this.sortDirection,\n sortItems: [...this.sortItems],\n smartFilterEnabled: this.smartFilterEnabled,\n smartFilterPrompt: this.smartFilterPrompt,\n filterState: this.hasActiveFilters() ? this.filterState : null,\n aggregatesConfig: this.buildAggregatesConfig()\n });\n }\n\n /**\n * Save default view settings to user settings\n * Used for dynamic/default views that don't have a stored view entity\n */\n onSaveDefaults(): void {\n // BUG-003: Guard against double-clicks with local flag\n if (this.isSaving || this._localSaving) return;\n\n this._localSaving = true;\n this.saveDefaults.emit({\n name: 'Default',\n description: '',\n isShared: false,\n saveAsNew: false,\n columns: this.visibleColumns,\n sortField: this.sortField,\n sortDirection: this.sortDirection,\n sortItems: [...this.sortItems],\n smartFilterEnabled: this.smartFilterEnabled,\n smartFilterPrompt: this.smartFilterPrompt,\n filterState: this.hasActiveFilters() ? this.filterState : null,\n aggregatesConfig: this.buildAggregatesConfig()\n });\n }\n\n // Delete confirmation state\n public showDeleteConfirm: boolean = false;\n\n /**\n * Delete the view - shows confirmation dialog\n */\n onDelete(): void {\n this.showDeleteConfirm = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Confirmed delete from dialog\n */\n OnDeleteConfirmed(): void {\n this.showDeleteConfirm = false;\n this.delete.emit();\n }\n\n /**\n * Cancelled delete from dialog\n */\n OnDeleteCancelled(): void {\n this.showDeleteConfirm = false;\n this.cdr.detectChanges();\n }\n\n /**\n * Duplicate the current view (F-005)\n */\n OnDuplicate(): void {\n this.duplicate.emit();\n }\n\n /**\n * Set the active tab\n */\n setActiveTab(tab: 'columns' | 'sorting' | 'filters' | 'aggregates' | 'settings'): void {\n this.activeTab = tab;\n this.formatEditingColumn = null; // Close format editor when switching tabs\n this.cdr.detectChanges();\n }\n\n /**\n * Set the filter mode (smart or traditional)\n * BUG-006: Shows confirmation when switching if active mode has data\n */\n setFilterMode(mode: 'smart' | 'traditional'): void {\n if (this.filterMode === mode) return;\n\n // Check if current mode has data that would be lost\n const currentModeHasData = this.currentFilterModeHasData();\n\n if (currentModeHasData) {\n // Show confirmation dialog before switching\n this.pendingFilterModeSwitch = mode;\n this.showFilterModeSwitchConfirm = true;\n this.cdr.detectChanges();\n return;\n }\n\n this.applyFilterModeSwitch(mode);\n }\n\n /**\n * Check if the current filter mode has user-entered data\n */\n private currentFilterModeHasData(): boolean {\n if (this.filterMode === 'smart') {\n return !!this.smartFilterPrompt.trim();\n } else {\n return this.getFilterCount() > 0;\n }\n }\n\n /**\n * Confirm the filter mode switch (called from ConfirmDialog)\n */\n OnFilterModeSwitchConfirmed(): void {\n if (this.pendingFilterModeSwitch) {\n this.applyFilterModeSwitch(this.pendingFilterModeSwitch);\n }\n this.showFilterModeSwitchConfirm = false;\n this.pendingFilterModeSwitch = null;\n }\n\n /**\n * Cancel the filter mode switch (called from ConfirmDialog)\n */\n OnFilterModeSwitchCancelled(): void {\n this.showFilterModeSwitchConfirm = false;\n this.pendingFilterModeSwitch = null;\n }\n\n /**\n * Apply the filter mode switch - saves current mode data and restores target mode data\n */\n private applyFilterModeSwitch(mode: 'smart' | 'traditional'): void {\n // Save current mode's data before switching\n if (this.filterMode === 'smart') {\n this.savedSmartFilterPrompt = this.smartFilterPrompt;\n } else {\n this.savedTraditionalFilter = this.filterState;\n }\n\n this.filterMode = mode;\n\n // Restore target mode's saved data or clear\n if (mode === 'smart') {\n this.smartFilterEnabled = true;\n this.smartFilterPrompt = this.savedSmartFilterPrompt;\n this.filterState = createEmptyFilter();\n } else {\n this.smartFilterEnabled = false;\n this.smartFilterPrompt = '';\n this.smartFilterExplanation = '';\n this.filterState = this.savedTraditionalFilter;\n }\n\n this.cdr.detectChanges();\n }\n\n /**\n * Apply a smart filter example to the prompt field\n */\n applySmartFilterExample(example: string): void {\n this.smartFilterPrompt = example;\n this.cdr.detectChanges();\n }\n\n // ========================================\n // STYLE UPDATE HELPERS\n // ========================================\n\n /**\n * Toggle a header style property\n */\n toggleHeaderStyle(prop: keyof ColumnTextStyle): void {\n if (!this.formatEditingColumn?.format) return;\n\n const format = this.formatEditingColumn.format;\n if (!format.headerStyle) {\n format.headerStyle = {};\n }\n\n if (prop === 'bold' || prop === 'italic' || prop === 'underline') {\n format.headerStyle[prop] = !format.headerStyle[prop];\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Update the user-defined display name for a column\n */\n updateUserDisplayName(value: string): void {\n if (!this.formatEditingColumn) return;\n\n // Set to undefined if empty string, otherwise use the value\n this.formatEditingColumn.userDisplayName = value.trim() || undefined;\n this.cdr.detectChanges();\n }\n\n /**\n * Update a header style color property\n */\n updateHeaderColor(prop: 'color' | 'backgroundColor', value: string): void {\n if (!this.formatEditingColumn?.format) return;\n\n const format = this.formatEditingColumn.format;\n if (!format.headerStyle) {\n format.headerStyle = {};\n }\n format.headerStyle[prop] = value;\n this.cdr.detectChanges();\n }\n\n /**\n * Toggle a cell style property\n */\n toggleCellStyle(prop: keyof ColumnTextStyle): void {\n if (!this.formatEditingColumn?.format) return;\n\n const format = this.formatEditingColumn.format;\n if (!format.cellStyle) {\n format.cellStyle = {};\n }\n\n if (prop === 'bold' || prop === 'italic' || prop === 'underline') {\n format.cellStyle[prop] = !format.cellStyle[prop];\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Update a cell style color property\n */\n updateCellColor(prop: 'color' | 'backgroundColor', value: string): void {\n if (!this.formatEditingColumn?.format) return;\n\n const format = this.formatEditingColumn.format;\n if (!format.cellStyle) {\n format.cellStyle = {};\n }\n format.cellStyle[prop] = value;\n this.cdr.detectChanges();\n }\n\n // ========================================\n // AGGREGATE MANAGEMENT\n // ========================================\n\n /**\n * Open dialog to add a new aggregate\n */\n openAddAggregateDialog(): void {\n this.editingAggregate = null;\n this.showAggregateDialog = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Open dialog to edit an existing aggregate\n */\n editAggregate(aggregate: ViewGridAggregate): void {\n this.editingAggregate = { ...aggregate };\n this.showAggregateDialog = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Close the aggregate dialog\n */\n closeAggregateDialog(): void {\n this.showAggregateDialog = false;\n this.editingAggregate = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Handle saving an aggregate from the dialog\n */\n onAggregateSave(aggregate: ViewGridAggregate): void {\n const existingIndex = this.aggregates.findIndex(a => a.id === aggregate.id);\n\n if (existingIndex >= 0) {\n // Update existing\n this.aggregates[existingIndex] = aggregate;\n } else {\n // Add new with order at end\n aggregate.order = this.aggregates.length;\n this.aggregates.push(aggregate);\n }\n\n this.closeAggregateDialog();\n }\n\n /**\n * Remove an aggregate\n */\n removeAggregate(aggregate: ViewGridAggregate): void {\n const index = this.aggregates.findIndex(a => a.id === aggregate.id);\n if (index >= 0) {\n this.aggregates.splice(index, 1);\n // Re-order remaining aggregates\n this.aggregates.forEach((a, i) => a.order = i);\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Toggle aggregate enabled state (BUG-012: immutable update, no excessive logging)\n */\n toggleAggregateEnabled(aggregate: ViewGridAggregate, event?: MouseEvent): void {\n // Stop event propagation to prevent any parent handlers\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // Find by ID first, fall back to object reference or label\n let index = -1;\n if (aggregate.id) {\n index = this.aggregates.findIndex(a => a.id === aggregate.id);\n }\n if (index < 0) {\n index = this.aggregates.indexOf(aggregate);\n }\n if (index < 0 && aggregate.label) {\n index = this.aggregates.findIndex(a => a.label === aggregate.label && a.expression === aggregate.expression);\n }\n\n if (index >= 0) {\n const updatedAggregate: ViewGridAggregate = {\n ...this.aggregates[index],\n enabled: this.aggregates[index].enabled === false\n };\n // Replace entire array to trigger change detection\n const newAggregates = [...this.aggregates];\n newAggregates[index] = updatedAggregate;\n this.aggregates = newAggregates;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Move aggregate up in order\n */\n moveAggregateUp(aggregate: ViewGridAggregate): void {\n const index = this.aggregates.indexOf(aggregate);\n if (index > 0) {\n const prev = this.aggregates[index - 1];\n this.aggregates[index - 1] = aggregate;\n this.aggregates[index] = prev;\n this.aggregates.forEach((a, i) => a.order = i);\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Move aggregate down in order\n */\n moveAggregateDown(aggregate: ViewGridAggregate): void {\n const index = this.aggregates.indexOf(aggregate);\n if (index < this.aggregates.length - 1) {\n const next = this.aggregates[index + 1];\n this.aggregates[index + 1] = aggregate;\n this.aggregates[index] = next;\n this.aggregates.forEach((a, i) => a.order = i);\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Get enabled aggregates count\n */\n get enabledAggregatesCount(): number {\n return this.aggregates.filter(a => a.enabled !== false).length;\n }\n\n /**\n * Get card aggregates\n */\n get cardAggregates(): ViewGridAggregate[] {\n return this.aggregates.filter(a => a.displayType === 'card');\n }\n\n /**\n * Get column aggregates\n */\n get columnAggregates(): ViewGridAggregate[] {\n return this.aggregates.filter(a => a.displayType === 'column');\n }\n\n /**\n * Build aggregates config from current state\n */\n private buildAggregatesConfig(): ViewGridAggregatesConfig | null {\n if (this.aggregates.length === 0) return null;\n\n return {\n display: { ...DEFAULT_AGGREGATE_DISPLAY },\n expressions: [...this.aggregates]\n };\n }\n}\n","<!-- Backdrop -->\n@if (isOpen) {\n <div class=\"panel-backdrop\" (click)=\"onClose()\"></div>\n}\n\n<!-- Sliding Panel -->\n<div class=\"config-panel\"\n [class.open]=\"isOpen\"\n [class.resizing]=\"isResizing\"\n [style.width.px]=\"panelWidth\">\n <!-- Resize Handle -->\n <div class=\"resize-handle\"\n (mousedown)=\"onResizeStart($event)\"\n title=\"Drag to resize\">\n <div class=\"resize-grip\"></div>\n </div>\n\n <!-- Panel Header -->\n <div class=\"panel-header\">\n <div class=\"header-title\">\n <i class=\"fa-solid fa-sliders-h\"></i>\n <span>{{ viewEntity ? 'Edit View' : 'Configure View' }}</span>\n </div>\n <button class=\"close-btn\" (click)=\"onClose()\" title=\"Close\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Tab Navigation -->\n <div class=\"tab-nav\" [class.icon-only]=\"isIconOnlyMode\">\n <button\n class=\"tab-btn\"\n [class.active]=\"activeTab === 'columns'\"\n (click)=\"setActiveTab('columns')\"\n [title]=\"isIconOnlyMode ? 'Columns' : ''\">\n <i class=\"fa-solid fa-columns\"></i>\n @if (!isIconOnlyMode) {\n <span>Columns</span>\n }\n </button>\n <button\n class=\"tab-btn\"\n [class.active]=\"activeTab === 'sorting'\"\n (click)=\"setActiveTab('sorting')\"\n [title]=\"isIconOnlyMode ? 'Sorting' + (sortItems.length > 0 ? ' (' + sortItems.length + ')' : '') : ''\">\n <i class=\"fa-solid fa-arrow-up-wide-short\"></i>\n @if (!isIconOnlyMode) {\n <span>Sorting</span>\n }\n @if (sortItems.length > 0) {\n <span class=\"tab-badge\">{{ sortItems.length }}</span>\n }\n </button>\n <button\n class=\"tab-btn\"\n [class.active]=\"activeTab === 'filters'\"\n (click)=\"setActiveTab('filters')\"\n [title]=\"isIconOnlyMode ? 'Filters' : ''\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (!isIconOnlyMode) {\n <span>Filters</span>\n }\n </button>\n <button\n class=\"tab-btn\"\n [class.active]=\"activeTab === 'aggregates'\"\n (click)=\"setActiveTab('aggregates')\"\n [title]=\"isIconOnlyMode ? 'Aggregates' + (enabledAggregatesCount > 0 ? ' (' + enabledAggregatesCount + ')' : '') : ''\">\n <i class=\"fa-solid fa-chart-simple\"></i>\n @if (!isIconOnlyMode) {\n <span>Aggregates</span>\n }\n @if (enabledAggregatesCount > 0) {\n <span class=\"tab-badge\">{{ enabledAggregatesCount }}</span>\n }\n </button>\n @if (viewEntity) {\n <button\n class=\"tab-btn\"\n [class.active]=\"activeTab === 'settings'\"\n (click)=\"setActiveTab('settings')\"\n [title]=\"isIconOnlyMode ? 'Settings' : ''\">\n <i class=\"fa-solid fa-cog\"></i>\n @if (!isIconOnlyMode) {\n <span>Settings</span>\n }\n </button>\n }\n </div>\n\n <!-- Panel Content -->\n <div class=\"panel-content\">\n <!-- Columns Tab -->\n @if (activeTab === 'columns' && !formatEditingColumn) {\n <div class=\"tab-content\">\n <!-- Visible Columns -->\n <div class=\"config-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-eye\"></i>\n <span>Visible Columns</span>\n <span class=\"column-count\">{{ visibleColumns.length }}</span>\n </div>\n <div class=\"column-list visible-columns\">\n @for (column of visibleColumns; track column.fieldId; let i = $index) {\n <!-- Drop indicator before -->\n @if (isDropBefore(column)) {\n <div class=\"drop-indicator\"></div>\n }\n <div\n class=\"column-item\"\n [class.dragging]=\"draggedColumn === column\"\n [class.drop-target]=\"dropTargetColumn === column\"\n draggable=\"true\"\n (dragstart)=\"onDragStart($event, column)\"\n (dragover)=\"onDragOver($event, column)\"\n (dragleave)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event, column)\"\n (dragend)=\"onDragEnd($event)\">\n <div class=\"drag-handle\">\n <i class=\"fa-solid fa-grip-vertical\"></i>\n </div>\n <span class=\"column-name\">\n {{ column.userDisplayName || column.displayName }}\n @if (column.userDisplayName) {\n <i class=\"fa-solid fa-pen-nib alias-indicator\" title=\"Custom name: {{ column.userDisplayName }}\"></i>\n }\n @if (hasCustomFormat(column)) {\n <i class=\"fa-solid fa-paintbrush format-indicator\" title=\"Custom formatting applied\"></i>\n }\n </span>\n <div class=\"column-actions\">\n <button\n class=\"action-btn format-btn\"\n (click)=\"openFormatEditor(column)\"\n title=\"Format column\">\n <i class=\"fa-solid fa-paintbrush\"></i>\n </button>\n <button\n class=\"action-btn\"\n [disabled]=\"i === 0\"\n (click)=\"moveColumnUp(column)\"\n title=\"Move up\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <button\n class=\"action-btn\"\n [disabled]=\"i === visibleColumns.length - 1\"\n (click)=\"moveColumnDown(column)\"\n title=\"Move down\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <button\n class=\"action-btn hide-btn\"\n (click)=\"toggleColumnVisibility(column)\"\n title=\"Hide column\">\n <i class=\"fa-solid fa-eye-slash\"></i>\n </button>\n </div>\n </div>\n <!-- Drop indicator after (only for last item) -->\n @if (isDropAfter(column) && i === visibleColumns.length - 1) {\n <div class=\"drop-indicator\"></div>\n }\n }\n @if (visibleColumns.length === 0) {\n <div class=\"empty-list\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>No columns visible. Add columns from below.</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Hidden Columns -->\n <div class=\"config-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-eye-slash\"></i>\n <span>Hidden Columns</span>\n <span class=\"column-count\">{{ hiddenColumns.length }}</span>\n </div>\n @if (hiddenColumns.length > 5) {\n <div class=\"column-search\">\n <i class=\"fa-solid fa-search\"></i>\n <input\n type=\"text\"\n placeholder=\"Search columns...\"\n [(ngModel)]=\"columnSearchText\"\n />\n </div>\n }\n <div class=\"column-list hidden-columns\">\n @for (column of filteredHiddenColumns; track column.fieldId) {\n <div class=\"column-item hidden\">\n <span class=\"column-name\">{{ column.displayName }}</span>\n <button\n class=\"action-btn show-btn\"\n (click)=\"toggleColumnVisibility(column)\"\n title=\"Show column\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n </div>\n }\n @if (hiddenColumns.length === 0) {\n <div class=\"empty-list\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>All columns are visible</span>\n </div>\n }\n </div>\n </div>\n </div>\n }\n\n <!-- Column Format Editor Sub-Panel -->\n @if (activeTab === 'columns' && formatEditingColumn) {\n <div class=\"format-editor\">\n <!-- Format Editor Header -->\n <div class=\"format-editor-header\">\n <button class=\"back-btn\" (click)=\"closeFormatEditor()\">\n <i class=\"fa-solid fa-arrow-left\"></i>\n </button>\n <div class=\"format-editor-title\">\n <span>Format: {{ formatEditingColumn.userDisplayName || formatEditingColumn.displayName }}</span>\n </div>\n </div>\n\n <!-- Column Alias Section -->\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-pen-nib\"></i>\n <span>Column Name</span>\n </div>\n <div class=\"format-row\">\n <label>Display As</label>\n <input type=\"text\" class=\"format-input\"\n [value]=\"formatEditingColumn.userDisplayName || ''\"\n (input)=\"updateUserDisplayName($any($event.target).value)\"\n [placeholder]=\"formatEditingColumn.displayName\" />\n </div>\n @if (formatEditingColumn.userDisplayName) {\n <div class=\"format-row alias-info\">\n <small class=\"muted-text\">Original: {{ formatEditingColumn.displayName }}</small>\n <button class=\"clear-alias-btn\" (click)=\"formatEditingColumn.userDisplayName = undefined\" title=\"Clear alias\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n </div>\n\n <!-- Preview Section -->\n <div class=\"format-preview-section\">\n <div class=\"preview-header\">\n <i class=\"fa-solid fa-eye\"></i>\n <span>Preview</span>\n </div>\n <div class=\"preview-table\">\n <div class=\"preview-header-cell\"\n [style.font-weight]=\"formatEditingColumn.format?.headerStyle?.bold ? 'bold' : 'normal'\"\n [style.font-style]=\"formatEditingColumn.format?.headerStyle?.italic ? 'italic' : 'normal'\"\n [style.text-decoration]=\"formatEditingColumn.format?.headerStyle?.underline ? 'underline' : 'none'\"\n [style.color]=\"formatEditingColumn.format?.headerStyle?.color\"\n [style.background-color]=\"formatEditingColumn.format?.headerStyle?.backgroundColor\">\n {{ formatEditingColumn.userDisplayName || formatEditingColumn.displayName }}\n </div>\n @for (value of getSampleValues(formatEditingColumn); track $index) {\n <div class=\"preview-cell\"\n [style.text-align]=\"formatEditingColumn.format?.align || 'left'\"\n [style.font-weight]=\"formatEditingColumn.format?.cellStyle?.bold ? 'bold' : 'normal'\"\n [style.font-style]=\"formatEditingColumn.format?.cellStyle?.italic ? 'italic' : 'normal'\"\n [style.text-decoration]=\"formatEditingColumn.format?.cellStyle?.underline ? 'underline' : 'none'\"\n [style.color]=\"formatEditingColumn.format?.cellStyle?.color\"\n [style.background-color]=\"formatEditingColumn.format?.cellStyle?.backgroundColor\">\n {{ formatPreviewValue(value, formatEditingColumn.format) }}\n </div>\n }\n </div>\n </div>\n\n <!-- Format Type -->\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-hashtag\"></i>\n <span>Format Type</span>\n </div>\n <select class=\"format-select\" [(ngModel)]=\"formatEditingColumn.format!.type\">\n <option value=\"auto\">Auto (Smart Default)</option>\n <option value=\"text\">Text</option>\n <option value=\"number\">Number</option>\n <option value=\"currency\">Currency</option>\n <option value=\"percent\">Percent</option>\n <option value=\"date\">Date</option>\n <option value=\"datetime\">Date & Time</option>\n <option value=\"boolean\">Boolean</option>\n </select>\n </div>\n\n <!-- Type-Specific Options -->\n @if (formatEditingColumn.format?.type === 'number' || formatEditingColumn.format?.type === 'currency' || formatEditingColumn.format?.type === 'percent') {\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-sliders\"></i>\n <span>Number Options</span>\n </div>\n <div class=\"format-row\">\n <label>Decimal Places</label>\n <input type=\"number\" class=\"format-input small\" min=\"0\" max=\"10\"\n [(ngModel)]=\"formatEditingColumn.format!.decimals\" />\n </div>\n @if (formatEditingColumn.format?.type === 'currency') {\n <div class=\"format-row\">\n <label>Currency</label>\n <select class=\"format-select\" [(ngModel)]=\"formatEditingColumn.format!.currencyCode\">\n <option value=\"USD\">USD ($)</option>\n <option value=\"EUR\">EUR (€)</option>\n <option value=\"GBP\">GBP (£)</option>\n <option value=\"JPY\">JPY (¥)</option>\n <option value=\"CAD\">CAD ($)</option>\n <option value=\"AUD\">AUD ($)</option>\n </select>\n </div>\n }\n <div class=\"format-row\">\n <label>Thousands Separator</label>\n <input type=\"checkbox\" [(ngModel)]=\"formatEditingColumn.format!.thousandsSeparator\" />\n </div>\n </div>\n }\n\n @if (formatEditingColumn.format?.type === 'date' || formatEditingColumn.format?.type === 'datetime') {\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-calendar\"></i>\n <span>Date Options</span>\n </div>\n <div class=\"format-row\">\n <label>Format</label>\n <select class=\"format-select\" [(ngModel)]=\"formatEditingColumn.format!.dateFormat\">\n <option value=\"short\">Short (1/15/25)</option>\n <option value=\"short-weekday\">Short + Day (Wed, 1/15/25)</option>\n <option value=\"medium\">Medium (Jan 15, 2025)</option>\n <option value=\"medium-weekday\">Medium + Day (Wed, Jan 15, 2025)</option>\n <option value=\"long\">Long (January 15, 2025)</option>\n <option value=\"long-weekday\">Long + Day (Wednesday, January 15, 2025)</option>\n </select>\n </div>\n </div>\n }\n\n @if (formatEditingColumn.format?.type === 'boolean') {\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-toggle-on\"></i>\n <span>Boolean Options</span>\n </div>\n <div class=\"format-row\">\n <label>True Label</label>\n <input type=\"text\" class=\"format-input\" [(ngModel)]=\"formatEditingColumn.format!.trueLabel\" placeholder=\"Yes\" />\n </div>\n <div class=\"format-row\">\n <label>False Label</label>\n <input type=\"text\" class=\"format-input\" [(ngModel)]=\"formatEditingColumn.format!.falseLabel\" placeholder=\"No\" />\n </div>\n <div class=\"format-row\">\n <label>Display As</label>\n <select class=\"format-select\" [(ngModel)]=\"formatEditingColumn.format!.booleanDisplay\">\n <option value=\"text\">Text</option>\n <option value=\"checkbox\">Checkbox</option>\n <option value=\"icon\">Icon</option>\n </select>\n </div>\n </div>\n }\n\n <!-- Alignment -->\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-align-left\"></i>\n <span>Alignment</span>\n </div>\n <div class=\"alignment-toggle\">\n <button class=\"align-btn\" [class.active]=\"formatEditingColumn.format?.align === 'left' || !formatEditingColumn.format?.align\"\n (click)=\"formatEditingColumn.format!.align = 'left'\" title=\"Left\">\n <i class=\"fa-solid fa-align-left\"></i>\n </button>\n <button class=\"align-btn\" [class.active]=\"formatEditingColumn.format?.align === 'center'\"\n (click)=\"formatEditingColumn.format!.align = 'center'\" title=\"Center\">\n <i class=\"fa-solid fa-align-center\"></i>\n </button>\n <button class=\"align-btn\" [class.active]=\"formatEditingColumn.format?.align === 'right'\"\n (click)=\"formatEditingColumn.format!.align = 'right'\" title=\"Right\">\n <i class=\"fa-solid fa-align-right\"></i>\n </button>\n </div>\n </div>\n\n <!-- Header Style -->\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-heading\"></i>\n <span>Header Style</span>\n </div>\n <div class=\"style-buttons\">\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.headerStyle?.bold\"\n (click)=\"toggleHeaderStyle('bold')\"\n title=\"Bold\">\n <i class=\"fa-solid fa-bold\"></i>\n </button>\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.headerStyle?.italic\"\n (click)=\"toggleHeaderStyle('italic')\"\n title=\"Italic\">\n <i class=\"fa-solid fa-italic\"></i>\n </button>\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.headerStyle?.underline\"\n (click)=\"toggleHeaderStyle('underline')\"\n title=\"Underline\">\n <i class=\"fa-solid fa-underline\"></i>\n </button>\n </div>\n <div class=\"format-row\">\n <label>Text Color</label>\n <input type=\"color\" class=\"color-input\"\n [value]=\"formatEditingColumn.format?.headerStyle?.color || '#000000'\"\n (input)=\"updateHeaderColor('color', $any($event.target).value)\" />\n </div>\n <div class=\"format-row\">\n <label>Background</label>\n <input type=\"color\" class=\"color-input\"\n [value]=\"formatEditingColumn.format?.headerStyle?.backgroundColor || '#ffffff'\"\n (input)=\"updateHeaderColor('backgroundColor', $any($event.target).value)\" />\n </div>\n </div>\n\n <!-- Cell Style -->\n <div class=\"format-section\">\n <div class=\"format-section-header\">\n <i class=\"fa-solid fa-table-cells\"></i>\n <span>Cell Style</span>\n </div>\n <div class=\"style-buttons\">\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.cellStyle?.bold\"\n (click)=\"toggleCellStyle('bold')\"\n title=\"Bold\">\n <i class=\"fa-solid fa-bold\"></i>\n </button>\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.cellStyle?.italic\"\n (click)=\"toggleCellStyle('italic')\"\n title=\"Italic\">\n <i class=\"fa-solid fa-italic\"></i>\n </button>\n <button class=\"style-btn\" [class.active]=\"formatEditingColumn.format?.cellStyle?.underline\"\n (click)=\"toggleCellStyle('underline')\"\n title=\"Underline\">\n <i class=\"fa-solid fa-underline\"></i>\n </button>\n </div>\n <div class=\"format-row\">\n <label>Text Color</label>\n <input type=\"color\" class=\"color-input\"\n [value]=\"formatEditingColumn.format?.cellStyle?.color || '#000000'\"\n (input)=\"updateCellColor('color', $any($event.target).value)\" />\n </div>\n <div class=\"format-row\">\n <label>Background</label>\n <input type=\"color\" class=\"color-input\"\n [value]=\"formatEditingColumn.format?.cellStyle?.backgroundColor || '#ffffff'\"\n (input)=\"updateCellColor('backgroundColor', $any($event.target).value)\" />\n </div>\n </div>\n\n <!-- Clear Format Button -->\n <div class=\"format-actions\">\n <button class=\"clear-format-btn\" (click)=\"clearColumnFormat(formatEditingColumn); closeFormatEditor()\">\n <i class=\"fa-solid fa-eraser\"></i>\n Clear Formatting\n </button>\n </div>\n </div>\n }\n\n <!-- Sorting Tab -->\n @if (activeTab === 'sorting') {\n <div class=\"tab-content\">\n <div class=\"config-section sorting-section\">\n <div class=\"sorting-header\">\n <p class=\"sorting-description\">\n Define how records should be ordered. Add multiple levels to sort by secondary fields when values are equal.\n </p>\n </div>\n\n <!-- Add Sort Button -->\n <button\n class=\"add-sort-btn\"\n (click)=\"addSortLevel()\"\n [disabled]=\"!canEdit || sortItems.length >= sortableFields.length\"\n title=\"Add another sort level\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add Sort Level</span>\n </button>\n\n <!-- Sort Items List -->\n @if (sortItems.length > 0) {\n <div class=\"sort-items-list\">\n @for (sortItem of sortItems; track $index; let i = $index) {\n <!-- Drop indicator before -->\n @if (isSortDropBefore(sortItem)) {\n <div class=\"sort-drop-indicator\"></div>\n }\n <div\n class=\"sort-item\"\n [class.dragging]=\"draggedSortItem === sortItem\"\n [class.drop-target]=\"dropTargetSortItem === sortItem\"\n draggable=\"true\"\n (dragstart)=\"onSortDragStart($event, sortItem)\"\n (dragover)=\"onSortDragOver($event, sortItem)\"\n (dragleave)=\"onSortDragLeave($event)\"\n (drop)=\"onSortDrop($event, sortItem)\"\n (dragend)=\"onSortDragEnd($event)\">\n <!-- Priority Badge -->\n <div class=\"sort-priority-badge\">{{ i + 1 }}</div>\n <!-- Drag Handle -->\n <div class=\"sort-drag-handle\" title=\"Drag to reorder\">\n <i class=\"fa-solid fa-grip-vertical\"></i>\n </div>\n <!-- Field Dropdown -->\n <select\n class=\"sort-field-dropdown\"\n [(ngModel)]=\"sortItem.field\"\n (ngModelChange)=\"onSortFieldChange(sortItem, $event)\"\n [disabled]=\"!canEdit\">\n @for (field of sortableFields; track field.ID) {\n <option [value]=\"field.Name\">{{ field.DisplayNameOrName }}</option>\n }\n </select>\n <!-- Direction Toggle -->\n <div class=\"sort-direction-toggle\">\n <button\n class=\"direction-btn\"\n [class.active]=\"sortItem.direction === 'asc'\"\n (click)=\"onSortDirectionChange(sortItem, 'asc')\"\n [disabled]=\"!canEdit\"\n title=\"Ascending (A-Z, 1-9)\">\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"direction-btn\"\n [class.active]=\"sortItem.direction === 'desc'\"\n (click)=\"onSortDirectionChange(sortItem, 'desc')\"\n [disabled]=\"!canEdit\"\n title=\"Descending (Z-A, 9-1)\">\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n <!-- Remove Button -->\n <button\n class=\"sort-remove-btn\"\n (click)=\"removeSortLevel(sortItem)\"\n [disabled]=\"!canEdit\"\n title=\"Remove sort level\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n <!-- Drop indicator after (only for last item) -->\n @if (isSortDropAfter(sortItem) && i === sortItems.length - 1) {\n <div class=\"sort-drop-indicator\"></div>\n }\n }\n </div>\n <!-- Multi-sort hint -->\n @if (sortItems.length > 1) {\n <div class=\"sort-hint\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>Drag items to change priority. Records sort by first level, then second, etc.</span>\n </div>\n }\n } @else {\n <div class=\"sort-empty-state\">\n <i class=\"fa-solid fa-arrow-up-wide-short\"></i>\n <span>No sorting configured</span>\n <p class=\"sort-empty-hint\">Click \"Add Sort Level\" to define how records should be ordered</p>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Filters Tab -->\n @if (activeTab === 'filters') {\n <div class=\"tab-content\">\n <!-- Filter Mode Selection -->\n <div class=\"filter-mode-selector\">\n <button\n class=\"filter-mode-btn\"\n [class.active]=\"filterMode === 'smart'\"\n (click)=\"setFilterMode('smart')\"\n [disabled]=\"!canEdit\">\n <div class=\"mode-icon\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n </div>\n <div class=\"mode-content\">\n <span class=\"mode-title\">Smart Filter</span>\n <span class=\"mode-subtitle\">Use AI to filter with natural language</span>\n </div>\n @if (filterMode === 'smart') {\n <i class=\"fa-solid fa-check mode-check\"></i>\n }\n </button>\n <button\n class=\"filter-mode-btn\"\n [class.active]=\"filterMode === 'traditional'\"\n (click)=\"setFilterMode('traditional')\"\n [disabled]=\"!canEdit\">\n <div class=\"mode-icon\">\n <i class=\"fa-solid fa-sliders\"></i>\n </div>\n <div class=\"mode-content\">\n <span class=\"mode-title\">Traditional Filter</span>\n <span class=\"mode-subtitle\">Build filters with field/operator/value</span>\n </div>\n @if (filterMode === 'traditional') {\n <i class=\"fa-solid fa-check mode-check\"></i>\n }\n </button>\n </div>\n\n <!-- Smart Filter Section -->\n @if (filterMode === 'smart') {\n <div class=\"config-section smart-filter-section\">\n <div class=\"smart-filter-input-container\">\n <div class=\"smart-filter-icon\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n </div>\n <textarea\n id=\"smartFilterPrompt\"\n class=\"smart-filter-textarea\"\n placeholder=\"Describe what you're looking for...\"\n [(ngModel)]=\"smartFilterPrompt\"\n [disabled]=\"!canEdit\"\n rows=\"3\"\n ></textarea>\n </div>\n\n @if (smartFilterExplanation) {\n <div class=\"smart-filter-explanation\">\n <i class=\"fa-solid fa-robot\"></i>\n <span>{{ smartFilterExplanation }}</span>\n </div>\n }\n\n <!-- Example Prompts -->\n <div class=\"smart-filter-examples\">\n <div class=\"examples-header\">\n <i class=\"fa-solid fa-lightbulb\"></i>\n <span>Try these examples:</span>\n </div>\n <div class=\"example-chips\">\n <button\n class=\"example-chip\"\n (click)=\"applySmartFilterExample('Show records created in the last 30 days')\"\n [disabled]=\"!canEdit\">\n <i class=\"fa-regular fa-calendar\"></i>\n Last 30 days\n </button>\n <button\n class=\"example-chip\"\n (click)=\"applySmartFilterExample('Active records only')\"\n [disabled]=\"!canEdit\">\n <i class=\"fa-solid fa-circle-check\"></i>\n Active only\n </button>\n <button\n class=\"example-chip\"\n (click)=\"applySmartFilterExample('Records with high priority')\"\n [disabled]=\"!canEdit\">\n <i class=\"fa-solid fa-star\"></i>\n High priority\n </button>\n <button\n class=\"example-chip\"\n (click)=\"applySmartFilterExample('Records modified this week')\"\n [disabled]=\"!canEdit\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i>\n Modified this week\n </button>\n </div>\n </div>\n\n <div class=\"smart-filter-tip\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>The AI will interpret your description and create the appropriate filter when you save the view.</span>\n </div>\n </div>\n }\n\n <!-- Traditional Filter Section -->\n @if (filterMode === 'traditional') {\n <div class=\"config-section traditional-filter-section\">\n <div class=\"filter-summary-container\">\n <div class=\"filter-summary\">\n <div class=\"summary-info\">\n @if (getFilterCount() > 0) {\n <span class=\"filter-badge\">{{ getFilterCount() }}</span>\n <span class=\"summary-text\">{{ getFilterSummary() }}</span>\n } @else {\n <span class=\"summary-text no-filters\">No filters configured</span>\n }\n </div>\n <div class=\"summary-actions\">\n @if (getFilterCount() > 0 && canEdit) {\n <button\n class=\"summary-btn clear-btn\"\n (click)=\"clearFilters()\"\n title=\"Clear all filters\">\n <i class=\"fa-solid fa-times\"></i>\n Clear\n </button>\n }\n <button\n class=\"summary-btn edit-btn primary\"\n (click)=\"openFilterDialog()\"\n [disabled]=\"!canEdit && getFilterCount() === 0\"\n title=\"Edit filters\">\n <i class=\"fa-solid fa-pen\"></i>\n {{ getFilterCount() > 0 ? 'Edit Filters' : 'Add Filters' }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"traditional-filter-tip\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>Build precise filters by selecting fields, operators, and values. Use groups for complex AND/OR logic.</span>\n </div>\n </div>\n }\n </div>\n }\n\n <!-- Aggregates Tab -->\n @if (activeTab === 'aggregates') {\n <div class=\"tab-content\">\n <div class=\"config-section aggregates-section\">\n <div class=\"aggregates-header\">\n <p class=\"aggregates-description\">\n Add summary calculations like totals, averages, and counts. Display them in cards or as column footers.\n </p>\n </div>\n\n <!-- Add Aggregate Button -->\n <button\n class=\"add-aggregate-btn\"\n (click)=\"openAddAggregateDialog()\"\n [disabled]=\"!canEdit\"\n title=\"Add a new aggregate\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add Aggregate</span>\n </button>\n\n <!-- Aggregates List -->\n @if (aggregates.length > 0) {\n <div class=\"aggregates-list\">\n @for (agg of aggregates; track agg.id; let i = $index) {\n <div class=\"aggregate-item\" [class.disabled]=\"agg.enabled === false\">\n <!-- Icon -->\n <div class=\"agg-icon\">\n <i [class]=\"agg.icon || 'fa-solid fa-chart-simple'\"></i>\n </div>\n\n <!-- Content -->\n <div class=\"agg-content\">\n <div class=\"agg-label\">{{ agg.label }}</div>\n <div class=\"agg-details\">\n <span class=\"agg-type\">\n <i [class]=\"agg.displayType === 'card' ? 'fa-solid fa-id-card' : 'fa-solid fa-table-columns'\"></i>\n {{ agg.displayType === 'card' ? 'Card' : 'Column Footer' }}\n </span>\n @if (agg.smartPrompt) {\n <span class=\"agg-smart-badge\" title=\"AI-generated\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n </span>\n }\n </div>\n </div>\n\n <!-- Actions -->\n <div class=\"agg-actions\">\n <button\n class=\"agg-action-btn\"\n [disabled]=\"i === 0 || !canEdit\"\n (click)=\"moveAggregateUp(agg)\"\n title=\"Move up\">\n <i class=\"fa-solid fa-chevron-up\"></i>\n </button>\n <button\n class=\"agg-action-btn\"\n [disabled]=\"i === aggregates.length - 1 || !canEdit\"\n (click)=\"moveAggregateDown(agg)\"\n title=\"Move down\">\n <i class=\"fa-solid fa-chevron-down\"></i>\n </button>\n <button\n class=\"agg-action-btn toggle-btn\"\n [class.enabled]=\"agg.enabled !== false\"\n (click)=\"toggleAggregateEnabled(agg, $event)\"\n [disabled]=\"!canEdit\"\n [title]=\"agg.enabled !== false ? 'Disable' : 'Enable'\">\n <i [class]=\"agg.enabled !== false ? 'fa-solid fa-eye' : 'fa-solid fa-eye-slash'\"></i>\n </button>\n <button\n class=\"agg-action-btn edit-btn\"\n (click)=\"editAggregate(agg)\"\n [disabled]=\"!canEdit\"\n title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button\n class=\"agg-action-btn remove-btn\"\n (click)=\"removeAggregate(agg)\"\n [disabled]=\"!canEdit\"\n title=\"Remove\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n\n <!-- Summary -->\n <div class=\"aggregates-summary\">\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-id-card\"></i>\n <span>{{ cardAggregates.length }} card{{ cardAggregates.length !== 1 ? 's' : '' }}</span>\n </div>\n <div class=\"summary-item\">\n <i class=\"fa-solid fa-table-columns\"></i>\n <span>{{ columnAggregates.length }} column footer{{ columnAggregates.length !== 1 ? 's' : '' }}</span>\n </div>\n </div>\n } @else {\n <div class=\"aggregates-empty-state\">\n <i class=\"fa-solid fa-chart-simple\"></i>\n <span>No aggregates configured</span>\n <p class=\"empty-hint\">Click \"Add Aggregate\" to create summary calculations</p>\n </div>\n }\n\n <!-- Info Tip -->\n <div class=\"aggregates-tip\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>Aggregates are calculated server-side for accuracy with filtered/paginated data.</span>\n </div>\n </div>\n </div>\n }\n\n <!-- Settings Tab -->\n @if (activeTab === 'settings') {\n <div class=\"tab-content\">\n <!-- View Name & Description -->\n <div class=\"config-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-info-circle\"></i>\n <span>View Details</span>\n </div>\n <div class=\"form-group\">\n <label for=\"viewName\">Name</label>\n <input\n id=\"viewName\"\n type=\"text\"\n class=\"form-input\"\n [class.invalid]=\"!viewName || !viewName.trim()\"\n placeholder=\"Enter view name...\"\n [(ngModel)]=\"viewName\"\n [disabled]=\"!canEdit\"\n />\n @if (!viewName || !viewName.trim()) {\n <span class=\"validation-error\">View name is required</span>\n }\n </div>\n <div class=\"form-group\">\n <label for=\"viewDescription\">Description</label>\n <textarea\n id=\"viewDescription\"\n class=\"form-input form-textarea\"\n placeholder=\"Describe this view...\"\n [(ngModel)]=\"viewDescription\"\n [disabled]=\"!canEdit\"\n rows=\"3\"\n ></textarea>\n </div>\n </div>\n\n <!-- Sharing -->\n <div class=\"config-section\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-share-alt\"></i>\n <span>Sharing</span>\n </div>\n <label class=\"checkbox-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"isShared\"\n [disabled]=\"!canEdit\"\n />\n <span class=\"checkbox-text\">\n <strong>Share with others</strong>\n <small>Allow other users to use this view</small>\n </span>\n </label>\n </div>\n\n <!-- Danger Zone -->\n @if (viewEntity && canDelete) {\n <div class=\"config-section danger-zone\">\n <div class=\"section-header\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>Danger Zone</span>\n </div>\n <button class=\"delete-btn\" (click)=\"onDelete()\">\n <i class=\"fa-solid fa-trash\"></i>\n <span>Delete View</span>\n </button>\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Validation Errors Banner -->\n @if (ValidationErrors.length > 0 && visibleColumns.length === 0) {\n <div class=\"validation-banner\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n <span>At least one column must be visible</span>\n </div>\n }\n\n <!-- Panel Footer -->\n <div class=\"panel-footer\">\n <!-- Action buttons on LEFT -->\n <div class=\"footer-left\">\n @if (viewEntity && canEdit) {\n <!-- Editing an existing saved view -->\n <button\n class=\"footer-btn save-btn primary\"\n (click)=\"onSave()\"\n [disabled]=\"isSaving || !IsValid\">\n @if (isSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n }\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n }\n @if (!viewEntity) {\n <!-- Default/Dynamic view - Save to user settings -->\n <button\n class=\"footer-btn save-btn primary\"\n (click)=\"onSaveDefaults()\"\n [disabled]=\"isSaving\">\n @if (isSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n }\n {{ isSaving ? 'Saving...' : 'Save' }}\n </button>\n }\n </div>\n <!-- Cancel button on RIGHT -->\n <button class=\"footer-btn cancel-btn\" (click)=\"onClose()\">\n Cancel\n </button>\n </div>\n</div>\n\n<!-- Aggregate Setup Dialog -->\n<mj-aggregate-setup-dialog\n [Entity]=\"entity\"\n [Aggregate]=\"editingAggregate\"\n [IsOpen]=\"showAggregateDialog\"\n (Close)=\"closeAggregateDialog()\"\n (Save)=\"onAggregateSave($event)\">\n</mj-aggregate-setup-dialog>\n\n<!-- Delete Confirmation Dialog -->\n<mj-ev-confirm-dialog\n [IsOpen]=\"showDeleteConfirm\"\n Title=\"Delete View\"\n [Message]=\"'Are you sure you want to delete \\'' + viewName + '\\'?'\"\n DetailMessage=\"This action cannot be undone. All users who have access to this view will lose it.\"\n ConfirmText=\"Delete\"\n ConfirmStyle=\"danger\"\n Icon=\"fa-solid fa-trash\"\n (Confirmed)=\"OnDeleteConfirmed()\"\n (Cancelled)=\"OnDeleteCancelled()\">\n</mj-ev-confirm-dialog>\n\n<!-- Filter Mode Switch Confirmation Dialog (BUG-006) -->\n<mj-ev-confirm-dialog\n [IsOpen]=\"showFilterModeSwitchConfirm\"\n Title=\"Switch Filter Mode\"\n [Message]=\"filterMode === 'smart' ? 'Switching to Traditional mode will clear your smart filter prompt.' : 'Switching to Smart mode will clear your traditional filter rules.'\"\n DetailMessage=\"You can switch back later, but the current filter data will be lost.\"\n ConfirmText=\"Switch\"\n ConfirmStyle=\"primary\"\n Icon=\"fa-solid fa-exchange-alt\"\n (Confirmed)=\"OnFilterModeSwitchConfirmed()\"\n (Cancelled)=\"OnFilterModeSwitchCancelled()\">\n</mj-ev-confirm-dialog>\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"view-header.component.js","sourceRoot":"","sources":["../../../src/lib/view-header/view-header.component.ts","../../../src/lib/view-header/view-header.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-header.component.js","sourceRoot":"","sources":["../../../src/lib/view-header/view-header.component.ts","../../../src/lib/view-header/view-header.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\n\n/**\n * ViewHeaderComponent - Inline view name display with edit, modified badge, and save/revert actions\n *\n * Features:\n * - View name display (click to edit inline)\n * - \"Modified\" badge when view has unsaved changes\n * - Save / Save As New / Revert buttons when modified\n * - Shared indicator icon\n *\n * @example\n * ```html\n * <mj-view-header\n * [ViewName]=\"currentView?.Name || 'All Records'\"\n * [IsModified]=\"viewModified\"\n * [IsSaving]=\"isSaving\"\n * [IsShared]=\"currentView?.IsShared\"\n * [CanEdit]=\"currentView?.UserCanEdit\"\n * (NameChanged)=\"onViewNameChanged($event)\"\n * (SaveRequested)=\"onSaveView()\"\n * (SaveAsNewRequested)=\"onSaveAsNew()\"\n * (RevertRequested)=\"onRevertView()\">\n * </mj-view-header>\n * ```\n */\n@Component({\n standalone: false,\n selector: 'mj-view-header',\n templateUrl: './view-header.component.html',\n styleUrls: ['./view-header.component.css']\n})\nexport class ViewHeaderComponent {\n /**\n * The view name to display\n */\n @Input() ViewName: string = '';\n\n /**\n * Whether the view has unsaved modifications\n */\n @Input() IsModified: boolean = false;\n\n /**\n * Whether a save operation is in progress\n */\n @Input() IsSaving: boolean = false;\n\n /**\n * Whether the view is shared with others\n */\n @Input() IsShared: boolean = false;\n\n /**\n * Whether the current user can edit this view\n */\n @Input() CanEdit: boolean = false;\n\n /**\n * Emitted when the user changes the view name inline\n */\n @Output() NameChanged = new EventEmitter<string>();\n\n /**\n * Emitted when the user clicks save\n */\n @Output() SaveRequested = new EventEmitter<void>();\n\n /**\n * Emitted when the user clicks save-as-new\n */\n @Output() SaveAsNewRequested = new EventEmitter<void>();\n\n /**\n * Emitted when the user clicks revert\n */\n @Output() RevertRequested = new EventEmitter<void>();\n\n // Inline edit state\n public IsEditing: boolean = false;\n public EditValue: string = '';\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n /**\n * Start inline editing\n */\n StartEdit(): void {\n if (!this.CanEdit) return;\n this.EditValue = this.ViewName;\n this.IsEditing = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Confirm the inline edit (Enter key or blur)\n */\n ConfirmEdit(): void {\n const trimmed = this.EditValue.trim();\n if (trimmed && trimmed !== this.ViewName) {\n this.NameChanged.emit(trimmed);\n }\n this.IsEditing = false;\n this.cdr.detectChanges();\n }\n\n /**\n * Cancel the inline edit (Escape key)\n */\n CancelEdit(): void {\n this.IsEditing = false;\n this.cdr.detectChanges();\n }\n\n OnSave(): void {\n this.SaveRequested.emit();\n }\n\n OnSaveAsNew(): void {\n this.SaveAsNewRequested.emit();\n }\n\n OnRevert(): void {\n this.RevertRequested.emit();\n }\n}\n","<div class=\"view-header\">\n <!-- View Name (click to edit) -->\n <div class=\"view-name-container\">\n @if (IsEditing) {\n <input\n type=\"text\"\n class=\"name-input\"\n [(ngModel)]=\"EditValue\"\n (keydown.enter)=\"ConfirmEdit()\"\n (keydown.escape)=\"CancelEdit()\"\n (blur)=\"ConfirmEdit()\"\n #nameInput\n />\n } @else {\n <span\n class=\"view-name\"\n [class.editable]=\"CanEdit\"\n (click)=\"StartEdit()\"\n [title]=\"CanEdit ? 'Click to rename' : ViewName\">\n {{ ViewName }}\n </span>\n }\n\n <!-- Shared Indicator -->\n @if (IsShared) {\n <span class=\"shared-badge\" title=\"Shared view\">\n <i class=\"fa-solid fa-users\"></i>\n </span>\n }\n\n <!-- Modified Badge -->\n @if (IsModified) {\n <span class=\"modified-badge\">Modified</span>\n }\n </div>\n\n <!-- Actions (shown when modified) -->\n @if (IsModified && CanEdit) {\n <div class=\"view-actions\">\n <button\n class=\"action-btn save-btn\"\n (click)=\"OnSave()\"\n [disabled]=\"IsSaving\"\n title=\"Save changes\">\n @if (IsSaving) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n }\n </button>\n <button\n class=\"action-btn save-as-btn\"\n (click)=\"OnSaveAsNew()\"\n [disabled]=\"IsSaving\"\n title=\"Save as new view\">\n <i class=\"fa-solid fa-plus\"></i>\n </button>\n <button\n class=\"action-btn revert-btn\"\n (click)=\"OnRevert()\"\n [disabled]=\"IsSaving\"\n title=\"Revert to saved state\">\n <i class=\"fa-solid fa-undo\"></i>\n </button>\n </div>\n }\n</div>\n"]}