@memberjunction/ng-explorer-settings 6.2.0-edge.0 → 6.2.0-edge.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/lib/account-info/account-info.component.d.ts +1 -1
  2. package/dist/lib/account-info/account-info.component.js +2 -2
  3. package/dist/lib/account-info/account-info.component.js.map +1 -1
  4. package/dist/lib/application-management/application-dialog/application-dialog.component.d.ts +92 -10
  5. package/dist/lib/application-management/application-dialog/application-dialog.component.d.ts.map +1 -1
  6. package/dist/lib/application-management/application-dialog/application-dialog.component.js +222 -76
  7. package/dist/lib/application-management/application-dialog/application-dialog.component.js.map +1 -1
  8. package/dist/lib/application-management/application-management.component.d.ts +92 -10
  9. package/dist/lib/application-management/application-management.component.d.ts.map +1 -1
  10. package/dist/lib/application-management/application-management.component.js +229 -65
  11. package/dist/lib/application-management/application-management.component.js.map +1 -1
  12. package/dist/lib/application-settings/application-settings.component.d.ts +4 -4
  13. package/dist/lib/application-settings/application-settings.component.js +10 -10
  14. package/dist/lib/application-settings/application-settings.component.js.map +1 -1
  15. package/dist/lib/entity-permissions/entity-permissions.component.d.ts +88 -10
  16. package/dist/lib/entity-permissions/entity-permissions.component.d.ts.map +1 -1
  17. package/dist/lib/entity-permissions/entity-permissions.component.js +219 -63
  18. package/dist/lib/entity-permissions/entity-permissions.component.js.map +1 -1
  19. package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.d.ts +44 -6
  20. package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.d.ts.map +1 -1
  21. package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.js +117 -43
  22. package/dist/lib/entity-permissions/permission-dialog/permission-dialog.component.js.map +1 -1
  23. package/dist/lib/notification-preferences/notification-preferences.component.d.ts +25 -3
  24. package/dist/lib/notification-preferences/notification-preferences.component.d.ts.map +1 -1
  25. package/dist/lib/notification-preferences/notification-preferences.component.js +62 -18
  26. package/dist/lib/notification-preferences/notification-preferences.component.js.map +1 -1
  27. package/dist/lib/role-management/role-dialog/role-dialog.component.d.ts +32 -4
  28. package/dist/lib/role-management/role-dialog/role-dialog.component.d.ts.map +1 -1
  29. package/dist/lib/role-management/role-dialog/role-dialog.component.js +84 -30
  30. package/dist/lib/role-management/role-dialog/role-dialog.component.js.map +1 -1
  31. package/dist/lib/role-management/role-management-agent-context.d.ts +12 -4
  32. package/dist/lib/role-management/role-management-agent-context.d.ts.map +1 -1
  33. package/dist/lib/role-management/role-management-agent-context.js +26 -10
  34. package/dist/lib/role-management/role-management-agent-context.js.map +1 -1
  35. package/dist/lib/role-management/role-management.component.d.ts +95 -11
  36. package/dist/lib/role-management/role-management.component.d.ts.map +1 -1
  37. package/dist/lib/role-management/role-management.component.js +259 -91
  38. package/dist/lib/role-management/role-management.component.js.map +1 -1
  39. package/dist/lib/settings/settings.component.d.ts +87 -11
  40. package/dist/lib/settings/settings.component.d.ts.map +1 -1
  41. package/dist/lib/settings/settings.component.js +211 -65
  42. package/dist/lib/settings/settings.component.js.map +1 -1
  43. package/dist/lib/shared/settings-card.component.d.ts +24 -4
  44. package/dist/lib/shared/settings-card.component.d.ts.map +1 -1
  45. package/dist/lib/shared/settings-card.component.js +46 -6
  46. package/dist/lib/shared/settings-card.component.js.map +1 -1
  47. package/dist/lib/sql-logging/sql-logging.component.d.ts +172 -18
  48. package/dist/lib/sql-logging/sql-logging.component.d.ts.map +1 -1
  49. package/dist/lib/sql-logging/sql-logging.component.js +320 -108
  50. package/dist/lib/sql-logging/sql-logging.component.js.map +1 -1
  51. package/dist/lib/user-app-config/user-app-config-content.component.js +3 -3
  52. package/dist/lib/user-app-config/user-app-config-content.component.js.map +1 -1
  53. package/dist/lib/user-app-config/user-app-config-reorder.d.ts +4 -0
  54. package/dist/lib/user-app-config/user-app-config-reorder.d.ts.map +1 -1
  55. package/dist/lib/user-app-config/user-app-config-reorder.js +11 -3
  56. package/dist/lib/user-app-config/user-app-config-reorder.js.map +1 -1
  57. package/dist/lib/user-management/transaction-group-refusals.d.ts +4 -2
  58. package/dist/lib/user-management/transaction-group-refusals.d.ts.map +1 -1
  59. package/dist/lib/user-management/transaction-group-refusals.js +7 -3
  60. package/dist/lib/user-management/transaction-group-refusals.js.map +1 -1
  61. package/dist/lib/user-management/user-dialog/user-dialog.component.d.ts +44 -6
  62. package/dist/lib/user-management/user-dialog/user-dialog.component.d.ts.map +1 -1
  63. package/dist/lib/user-management/user-dialog/user-dialog.component.js +121 -47
  64. package/dist/lib/user-management/user-dialog/user-dialog.component.js.map +1 -1
  65. package/dist/lib/user-management/user-management-agent-context.d.ts +10 -0
  66. package/dist/lib/user-management/user-management-agent-context.d.ts.map +1 -1
  67. package/dist/lib/user-management/user-management-agent-context.js +26 -6
  68. package/dist/lib/user-management/user-management-agent-context.js.map +1 -1
  69. package/dist/lib/user-management/user-management.component.d.ts +174 -16
  70. package/dist/lib/user-management/user-management.component.d.ts.map +1 -1
  71. package/dist/lib/user-management/user-management.component.js +480 -171
  72. package/dist/lib/user-management/user-management.component.js.map +1 -1
  73. package/dist/lib/user-profile-settings/user-profile-settings.component.d.ts +97 -15
  74. package/dist/lib/user-profile-settings/user-profile-settings.component.d.ts.map +1 -1
  75. package/dist/lib/user-profile-settings/user-profile-settings.component.js +280 -116
  76. package/dist/lib/user-profile-settings/user-profile-settings.component.js.map +1 -1
  77. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"application-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/application-management/application-dialog/application-dialog.component.ts","../../../../src/lib/application-management/application-dialog/application-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, HostListener, ChangeDetectorRef, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJApplicationEntity, MJApplicationEntityEntity, MJEntityEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface ApplicationDialogData {\n application?: MJApplicationEntity;\n mode: 'create' | 'edit';\n}\n\ninterface ApplicationEntityConfig {\n entity: MJEntityEntity;\n applicationEntity?: MJApplicationEntityEntity;\n sequence: number;\n defaultForNewUser: boolean;\n isNew: boolean;\n hasChanges: boolean;\n}\n\nexport interface ApplicationDialogResult {\n action: 'save' | 'cancel';\n application?: MJApplicationEntity;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-application-dialog',\n templateUrl: './application-dialog.component.html',\n styleUrls: ['./application-dialog.component.css']\n})\nexport class ApplicationDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy, OnChanges {\n @Input() data: ApplicationDialogData | null = null;\n @Input() visible = false;\n @Output() result = new EventEmitter<ApplicationDialogResult>();\n\n private fb = inject(FormBuilder);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private get metadata() { return this.ProviderToUse; }\n public applicationForm: FormGroup;\n public isLoading = false;\n public error: string | null = null;\n\n // Entity management\n public applicationEntities: ApplicationEntityConfig[] = [];\n public availableEntities: MJEntityEntity[] = [];\n public allEntities: MJEntityEntity[] = [];\n\n // Search filter for available entities\n public entitySearchTerm = '';\n\n // Section expansion state\n public sectionExpanded = {\n basicInfo: true,\n entities: true,\n systemInfo: false\n };\n\n // Fullscreen state\n public isFullscreen = false;\n\n constructor() {\n super();\n this.applicationForm = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['']\n });\n }\n\n ngOnInit(): void {\n // Initial setup\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['visible'] && this.visible) {\n this.initializeDialog();\n }\n }\n\n ngOnDestroy(): void {\n // Cleanup if needed\n }\n\n private async initializeDialog(): Promise<void> {\n if (!this.visible) return;\n \n try {\n this.isLoading = true;\n this.error = null;\n \n // Load all entities first\n await this.loadAllEntities();\n \n if (this.data?.application && this.isEditMode) {\n await this.loadApplicationData();\n } else {\n this.resetForm();\n }\n } catch (error: unknown) {\n console.error('Error initializing dialog:', error);\n this.ngZone.run(() => {\n this.error = error instanceof Error ? error.message : 'Failed to load dialog data';\n this.cdr.markForCheck();\n });\n } finally {\n this.ngZone.run(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n private async loadAllEntities(): Promise<void> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJEntityEntity>({\n EntityName: 'MJ: Entities',\n ResultType: 'entity_object',\n OrderBy: 'Name ASC'\n });\n \n this.allEntities = result.Success ? result.Results : [];\n }\n\n private resetForm(): void {\n this.applicationForm.reset({\n name: '',\n description: ''\n });\n this.applicationEntities = [];\n this.availableEntities = [...this.allEntities];\n this.entitySearchTerm = '';\n this.error = null;\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n if (this.visible) {\n this.onCancel();\n }\n }\n\n public get windowTitle(): string {\n return this.isEditMode ? 'Edit Application' : 'Create New Application';\n }\n\n public get isEditMode(): boolean {\n return this.data?.mode === 'edit';\n }\n\n private async loadApplicationData(): Promise<void> {\n if (!this.data?.application) return;\n\n const app = this.data.application;\n this.applicationForm.patchValue({\n name: app.Name,\n description: app.Description\n });\n\n // Load existing MJApplicationEntity records\n await this.loadApplicationEntities(app.ID);\n }\n\n private async loadApplicationEntities(applicationId: string): Promise<void> {\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJApplicationEntityEntity>({\n EntityName: 'MJ: Application Entities',\n ExtraFilter: `ApplicationID='${applicationId}'`,\n ResultType: 'entity_object',\n OrderBy: 'Sequence ASC'\n });\n\n if (result.Success && result.Results) {\n this.applicationEntities = [];\n const usedEntityIds = new Set<string>();\n\n for (const appEntity of result.Results) {\n const entity = this.allEntities.find(e => UUIDsEqual(e.ID, appEntity.EntityID));\n if (entity) {\n this.applicationEntities.push({\n entity,\n applicationEntity: appEntity,\n sequence: appEntity.Sequence || 0,\n defaultForNewUser: appEntity.DefaultForNewUser || false,\n isNew: false,\n hasChanges: false\n });\n usedEntityIds.add(entity.ID);\n }\n }\n\n // Set available entities (excluding already assigned ones)\n this.availableEntities = this.allEntities.filter(e => !usedEntityIds.has(e.ID));\n }\n } catch (error) {\n console.warn('Failed to load application entities:', error);\n this.availableEntities = [...this.allEntities];\n }\n }\n\n public addEntity(entity: MJEntityEntity): void {\n // Add entity to application\n this.applicationEntities.push({\n entity,\n sequence: this.applicationEntities.length + 1,\n defaultForNewUser: false,\n isNew: true,\n hasChanges: false\n });\n\n // Update all sequences to be consecutive\n this.updateSequences();\n\n // Remove from available entities\n this.availableEntities = this.availableEntities.filter(e => !UUIDsEqual(e.ID, entity.ID));\n }\n\n public removeEntity(config: ApplicationEntityConfig): void {\n // Remove from application entities\n this.applicationEntities = this.applicationEntities.filter(ae => !UUIDsEqual(ae.entity.ID, config.entity.ID));\n \n // Update all sequences to be consecutive\n this.updateSequences();\n \n // Add back to available entities if not already there\n if (!this.availableEntities.find(e => UUIDsEqual(e.ID, config.entity.ID))) {\n this.availableEntities.push(config.entity);\n this.availableEntities.sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));\n }\n }\n\n public moveEntityUp(index: number): void {\n if (index > 0) {\n const temp = this.applicationEntities[index];\n this.applicationEntities[index] = this.applicationEntities[index - 1];\n this.applicationEntities[index - 1] = temp;\n this.updateSequences();\n }\n }\n\n public moveEntityDown(index: number): void {\n if (index < this.applicationEntities.length - 1) {\n const temp = this.applicationEntities[index];\n this.applicationEntities[index] = this.applicationEntities[index + 1];\n this.applicationEntities[index + 1] = temp;\n this.updateSequences();\n }\n }\n\n private updateSequences(): void {\n this.applicationEntities.forEach((config, index) => {\n config.sequence = index + 1;\n if (!config.isNew) {\n config.hasChanges = true;\n }\n });\n }\n\n public onDefaultForNewUserChange(config: ApplicationEntityConfig): void {\n if (!config.isNew) {\n config.hasChanges = true;\n }\n }\n\n public get hasEntityChanges(): boolean {\n return this.applicationEntities.some(ae => ae.isNew || ae.hasChanges);\n }\n\n // Filtered available entities based on search term\n public get filteredAvailableEntities(): MJEntityEntity[] {\n if (!this.entitySearchTerm || !this.entitySearchTerm.trim()) {\n return this.availableEntities;\n }\n const searchLower = this.entitySearchTerm.toLowerCase().trim();\n return this.availableEntities.filter(entity =>\n (entity.DisplayName || '').toLowerCase().includes(searchLower) ||\n (entity.Name || '').toLowerCase().includes(searchLower) ||\n (entity.Description || '').toLowerCase().includes(searchLower)\n );\n }\n\n public getEntityDisplayName(entity: MJEntityEntity): string {\n return entity.DisplayName || entity.Name;\n }\n\n public onEntitySearchChange(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.entitySearchTerm = value;\n }\n\n public clearEntitySearch(): void {\n this.entitySearchTerm = '';\n }\n\n public toggleSection(section: 'basicInfo' | 'entities' | 'systemInfo'): void {\n this.sectionExpanded[section] = !this.sectionExpanded[section];\n }\n\n public toggleFullscreen(): void {\n this.isFullscreen = !this.isFullscreen;\n }\n\n public onEntityDrop(event: CdkDragDrop<ApplicationEntityConfig[]>): void {\n if (event.previousIndex !== event.currentIndex) {\n moveItemInArray(this.applicationEntities, event.previousIndex, event.currentIndex);\n this.updateSequences();\n }\n }\n\n public async onSubmit(): Promise<void> {\n if (this.applicationForm.invalid) {\n this.markFormGroupTouched(this.applicationForm);\n return;\n }\n\n this.isLoading = true;\n this.error = null;\n\n try {\n let application: MJApplicationEntity;\n\n if (this.isEditMode && this.data?.application) {\n // Edit existing application\n application = this.data.application;\n } else {\n // Create new application\n application = await this.metadata.GetEntityObject<MJApplicationEntity>('MJ: Applications');\n application.NewRecord();\n }\n\n // Update application properties\n const formValue = this.applicationForm.value;\n application.Name = formValue.name;\n application.Description = formValue.description || null;\n\n // Save application\n const saveResult = await application.Save();\n if (!saveResult) {\n throw new Error(application.LatestResult?.Message || 'Failed to save application');\n }\n\n // Save application entities if there are changes\n if (this.hasEntityChanges) {\n await this.saveApplicationEntities(application.ID);\n }\n\n this.result.emit({ action: 'save', application });\n\n } catch (error: unknown) {\n console.error('Error saving application:', error);\n this.ngZone.run(() => {\n this.error = error instanceof Error ? error.message : 'An unexpected error occurred';\n this.cdr.markForCheck();\n });\n } finally {\n this.ngZone.run(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n private async saveApplicationEntities(applicationId: string): Promise<void> {\n // Save or update each MJApplicationEntity record\n for (const config of this.applicationEntities) {\n if (config.isNew || config.hasChanges) {\n let appEntity: MJApplicationEntityEntity;\n\n if (config.isNew) {\n // Create new MJApplicationEntity\n appEntity = await this.metadata.GetEntityObject<MJApplicationEntityEntity>('MJ: Application Entities');\n appEntity.NewRecord();\n appEntity.ApplicationID = applicationId;\n appEntity.EntityID = config.entity.ID;\n } else if (config.applicationEntity) {\n // Update existing MJApplicationEntity\n appEntity = config.applicationEntity;\n } else {\n continue;\n }\n\n appEntity.Sequence = config.sequence;\n appEntity.DefaultForNewUser = config.defaultForNewUser;\n\n const saveResult = await appEntity.Save();\n if (!saveResult) {\n console.warn(`Failed to save MJApplicationEntity for ${config.entity.Name}:`, appEntity.LatestResult?.Message);\n }\n }\n }\n }\n\n public onCancel(): void {\n this.result.emit({ action: 'cancel' });\n }\n\n private markFormGroupTouched(formGroup: FormGroup): void {\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.get(key);\n control?.markAsTouched();\n });\n }\n}","@if (visible) {\n <div class=\"modal-backdrop\" (click)=\"onCancel()\" role=\"presentation\">\n <div\n class=\"modal-dialog\"\n [class.fullscreen]=\"isFullscreen\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"application-dialog-title\"\n aria-describedby=\"application-dialog-description\"\n >\n <!-- Modal Header -->\n <div class=\"modal-header\" [class.create-mode]=\"!isEditMode\" [class.edit-mode]=\"isEditMode\">\n <div class=\"modal-header-content\">\n <h2 class=\"modal-title\" id=\"application-dialog-title\">\n <i class=\"fa-solid\" [class.fa-plus]=\"!isEditMode\" [class.fa-layer-group]=\"isEditMode\" aria-hidden=\"true\"></i>\n {{ isEditMode ? 'Edit Application' : 'Create New Application' }}\n </h2>\n <p class=\"modal-subtitle\" id=\"application-dialog-description\">\n {{ isEditMode ? 'Update application information and settings' : 'Add a new application to the system' }}\n </p>\n </div>\n <div class=\"modal-header-actions\">\n <button\n class=\"modal-action-btn\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'\"\n type=\"button\"\n >\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullscreen\" [class.fa-expand]=\"!isFullscreen\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"modal-close\"\n (click)=\"onCancel()\"\n aria-label=\"Close dialog\"\n type=\"button\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n\n <!-- Modal Body -->\n <div class=\"modal-body\">\n <form [formGroup]=\"applicationForm\" (ngSubmit)=\"onSubmit()\">\n <!-- Error Alert -->\n @if (error) {\n <div class=\"form-section\">\n <mj-alert Variant=\"error\" [Message]=\"error\" />\n </div>\n }\n\n <!-- Basic Information Section -->\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.basicInfo\" (ExpandedChange)=\"toggleSection('basicInfo')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\" aria-hidden=\"true\"></i>\n Application Information\n </span>\n <span class=\"section-description\">Define the application's basic properties</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <div class=\"form-field\">\n <label class=\"field-label required\" for=\"app-name\">Application Name</label>\n <input\n id=\"app-name\"\n type=\"text\"\n class=\"field-input\"\n formControlName=\"name\"\n placeholder=\"My Application\"\n [class.error]=\"applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched\"\n [attr.aria-invalid]=\"applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched\"\n aria-describedby=\"app-name-error\"\n />\n @if (applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched) {\n <div class=\"field-error\" id=\"app-name-error\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-circle\" aria-hidden=\"true\"></i>\n @if (applicationForm.get('name')?.errors?.['required']) {\n Application name is required\n }\n @if (applicationForm.get('name')?.errors?.['maxlength']) {\n Application name cannot exceed 100 characters\n }\n </div>\n }\n </div>\n\n <div class=\"form-field\">\n <label class=\"field-label\" for=\"app-description\">Description</label>\n <textarea\n id=\"app-description\"\n class=\"field-textarea\"\n formControlName=\"description\"\n placeholder=\"Describe the application's purpose and functionality...\"\n rows=\"4\"\n ></textarea>\n <div class=\"field-hint\">\n Provide a clear description of what this application does and its main features.\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Entity Management Section -->\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.entities\" (ExpandedChange)=\"toggleSection('entities')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-database\" aria-hidden=\"true\"></i>\n Application Entities\n </span>\n <span class=\"section-description\">Manage which entities are included in this application</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <!-- Assigned Entities -->\n @if (applicationEntities.length > 0) {\n <div class=\"assigned-entities\">\n <h4 class=\"subsection-title\">Assigned Entities ({{ applicationEntities.length }})</h4>\n <div class=\"entities-list\"\n role=\"list\"\n cdkDropList\n (cdkDropListDropped)=\"onEntityDrop($event)\">\n @for (config of applicationEntities; track config.entity.ID; let i = $index) {\n <div\n class=\"entity-item\"\n [class.is-new]=\"config.isNew\"\n [class.has-changes]=\"config.hasChanges\"\n role=\"listitem\"\n cdkDrag\n >\n <i class=\"fa-solid fa-grip-vertical drag-handle\" aria-hidden=\"true\"></i>\n <div class=\"entity-info\">\n <div class=\"entity-icon\">\n <i class=\"fa-solid fa-table\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"entity-details\">\n <div class=\"entity-name\">\n {{ getEntityDisplayName(config.entity) }}\n @if (config.entity.Description) {\n <i\n class=\"fa-solid fa-info-circle entity-info-icon\"\n [title]=\"config.entity.Description\"\n [attr.aria-label]=\"'Entity description: ' + config.entity.Description\"\n ></i>\n }\n </div>\n </div>\n </div>\n\n <div class=\"entity-config\">\n <div class=\"config-item\">\n <label class=\"config-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"config.defaultForNewUser\"\n [ngModelOptions]=\"{standalone: true}\"\n (change)=\"onDefaultForNewUserChange(config)\"\n class=\"config-checkbox\"\n />\n <span class=\"checkbox-text\">Default for new users</span>\n </label>\n </div>\n <div class=\"sequence-badge\" [attr.aria-label]=\"'Sequence ' + config.sequence\">{{ config.sequence }}</div>\n </div>\n\n <div class=\"entity-actions\">\n <button\n type=\"button\"\n class=\"btn-icon btn-danger\"\n (click)=\"removeEntity(config)\"\n title=\"Remove entity\"\n [attr.aria-label]=\"'Remove ' + getEntityDisplayName(config.entity)\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"no-entities\">\n <i class=\"fa-solid fa-database\" aria-hidden=\"true\"></i>\n <p>No entities assigned to this application</p>\n <p class=\"empty-subtext\">Add entities from the available list below</p>\n </div>\n }\n\n <!-- Available Entities -->\n @if (availableEntities.length > 0) {\n <div class=\"available-entities\">\n <div class=\"available-entities-header\">\n <h4 class=\"subsection-title\">Available Entities ({{ filteredAvailableEntities.length }} of {{ availableEntities.length }})</h4>\n <div class=\"entity-search\">\n <i class=\"fa-solid fa-search entity-search-icon\" aria-hidden=\"true\"></i>\n <input\n type=\"text\"\n class=\"entity-search-input\"\n placeholder=\"Search entities...\"\n [value]=\"entitySearchTerm\"\n (input)=\"onEntitySearchChange($event)\"\n aria-label=\"Search available entities\"\n />\n @if (entitySearchTerm) {\n <button\n type=\"button\"\n class=\"entity-search-clear\"\n (click)=\"clearEntitySearch()\"\n aria-label=\"Clear search\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n @if (filteredAvailableEntities.length > 0) {\n <div class=\"entities-grid\" role=\"list\">\n @for (entity of filteredAvailableEntities; track entity.ID) {\n <button\n type=\"button\"\n class=\"entity-chip\"\n (click)=\"addEntity(entity)\"\n role=\"listitem\"\n [attr.aria-label]=\"'Add ' + getEntityDisplayName(entity)\"\n >\n <div class=\"chip-content\">\n <i class=\"fa-solid fa-plus\" aria-hidden=\"true\"></i>\n <span class=\"chip-name\">{{ getEntityDisplayName(entity) }}</span>\n </div>\n </button>\n }\n </div>\n } @else {\n <div class=\"no-search-results\">\n <i class=\"fa-solid fa-search\" aria-hidden=\"true\"></i>\n <p>No entities match \"{{ entitySearchTerm }}\"</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"all-assigned\">\n <i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\"></i>\n <p>All entities have been assigned to this application</p>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- System Information Section (Edit Mode Only) -->\n @if (isEditMode) {\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.systemInfo\" (ExpandedChange)=\"toggleSection('systemInfo')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\" aria-hidden=\"true\"></i>\n System Information\n </span>\n <span class=\"section-description\">Application metadata and audit information</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <span class=\"info-label\">Created</span>\n <span class=\"info-value\">{{ data?.application?.__mj_CreatedAt | date:'medium' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Last Updated</span>\n <span class=\"info-value\">{{ data?.application?.__mj_UpdatedAt | date:'medium' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Application ID</span>\n <span class=\"info-value\">{{ data?.application?.ID }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Total Entities</span>\n <span class=\"info-value\">{{ applicationEntities.length }}</span>\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n }\n </form>\n </div>\n\n <!-- Modal Footer - Primary and Cancel buttons on RIGHT -->\n <div class=\"modal-footer\">\n <button\n type=\"submit\"\n mjButton variant=\"primary\"\n [disabled]=\"applicationForm.invalid || isLoading\"\n (click)=\"onSubmit()\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (isLoading) {\n <i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\" aria-hidden=\"true\"></i>\n {{ isEditMode ? 'Update Application' : 'Create Application' }}\n }\n </button>\n <button type=\"button\" mjButton (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n}\n"]}
1
+ {"version":3,"file":"application-dialog.component.js","sourceRoot":"","sources":["../../../../src/lib/application-management/application-dialog/application-dialog.component.ts","../../../../src/lib/application-management/application-dialog/application-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges, inject, HostListener, ChangeDetectorRef, NgZone } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Metadata, RunView } from '@memberjunction/core';\nimport { MJApplicationEntity, MJApplicationEntityEntity, MJEntityEntity } from '@memberjunction/core-entities';\nimport { UUIDsEqual } from '@memberjunction/global';\n\nimport { BaseAngularComponent } from '@memberjunction/ng-base-types';\nexport interface ApplicationDialogData {\n application?: MJApplicationEntity;\n mode: 'create' | 'edit';\n}\n\ninterface ApplicationEntityConfig {\n entity: MJEntityEntity;\n applicationEntity?: MJApplicationEntityEntity;\n sequence: number;\n defaultForNewUser: boolean;\n isNew: boolean;\n hasChanges: boolean;\n}\n\nexport interface ApplicationDialogResult {\n action: 'save' | 'cancel';\n application?: MJApplicationEntity;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-application-dialog',\n templateUrl: './application-dialog.component.html',\n styleUrls: ['./application-dialog.component.css']\n})\nexport class ApplicationDialogComponent extends BaseAngularComponent implements OnInit, OnDestroy, OnChanges {\n @Input() Data: ApplicationDialogData | null = null;\n\n /** @deprecated Use {@link Data}. */\n @Input() set data(value: ApplicationDialogData | null) {\n this.Data = value;\n }\n /** @deprecated Use {@link Data}. */\n get data(): ApplicationDialogData | null {\n return this.Data;\n }\n @Input() Visible = false;\n\n /** @deprecated Use {@link Visible}. */\n @Input() set visible(value: ApplicationDialogComponent['Visible']) {\n this.Visible = value;\n }\n /** @deprecated Use {@link Visible}. */\n get visible(): ApplicationDialogComponent['Visible'] {\n return this.Visible;\n }\n @Output() Result = new EventEmitter<ApplicationDialogResult>();\n\n /**\n * @deprecated Use {@link Result}.\n *\n * The same emitter under the old binding name, so a template still binding\n * (result) keeps working. Must stay AFTER Result: class fields\n * initialise in order, and the other way round this captures undefined.\n */\n @Output() result = this.Result;\n\n private fb = inject(FormBuilder);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private get metadata() { return this.ProviderToUse; }\n public ApplicationForm: FormGroup;\n\n /** @deprecated Use {@link ApplicationForm}. */\n public get applicationForm(): FormGroup {\n return this.ApplicationForm;\n }\n /** @deprecated Use {@link ApplicationForm}. */\n public set applicationForm(value: FormGroup) {\n this.ApplicationForm = value;\n }\n public isLoading = false;\n public error: string | null = null;\n\n // Entity management\n public ApplicationEntities: ApplicationEntityConfig[] = [];\n\n /** @deprecated Use {@link ApplicationEntities}. */\n public get applicationEntities(): ApplicationEntityConfig[] {\n return this.ApplicationEntities;\n }\n /** @deprecated Use {@link ApplicationEntities}. */\n public set applicationEntities(value: ApplicationEntityConfig[]) {\n this.ApplicationEntities = value;\n }\n public AvailableEntities: MJEntityEntity[] = [];\n\n /** @deprecated Use {@link AvailableEntities}. */\n public get availableEntities(): MJEntityEntity[] {\n return this.AvailableEntities;\n }\n /** @deprecated Use {@link AvailableEntities}. */\n public set availableEntities(value: MJEntityEntity[]) {\n this.AvailableEntities = value;\n }\n public AllEntities: MJEntityEntity[] = [];\n\n /** @deprecated Use {@link AllEntities}. */\n public get allEntities(): MJEntityEntity[] {\n return this.AllEntities;\n }\n /** @deprecated Use {@link AllEntities}. */\n public set allEntities(value: MJEntityEntity[]) {\n this.AllEntities = value;\n }\n\n // Search filter for available entities\n public EntitySearchTerm = '';\n\n /** @deprecated Use {@link EntitySearchTerm}. */\n public get entitySearchTerm() {\n return this.EntitySearchTerm;\n }\n /** @deprecated Use {@link EntitySearchTerm}. */\n public set entitySearchTerm(value) {\n this.EntitySearchTerm = value;\n }\n\n // Section expansion state\n public SectionExpanded = {\n basicInfo: true,\n entities: true,\n systemInfo: false\n };\n\n /** @deprecated Use {@link SectionExpanded}. */\n public get sectionExpanded() {\n return this.SectionExpanded;\n }\n /** @deprecated Use {@link SectionExpanded}. */\n public set sectionExpanded(value) {\n this.SectionExpanded = value;\n }\n\n // Fullscreen state\n public IsFullscreen = false;\n\n /** @deprecated Use {@link IsFullscreen}. */\n public get isFullscreen() {\n return this.IsFullscreen;\n }\n /** @deprecated Use {@link IsFullscreen}. */\n public set isFullscreen(value) {\n this.IsFullscreen = value;\n }\n\n constructor() {\n super();\n this.ApplicationForm = this.fb.group({\n name: ['', [Validators.required, Validators.maxLength(100)]],\n description: ['']\n });\n }\n\n ngOnInit(): void {\n // Initial setup\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['visible'] && this.Visible) {\n this.initializeDialog();\n }\n }\n\n ngOnDestroy(): void {\n // Cleanup if needed\n }\n\n private async initializeDialog(): Promise<void> {\n if (!this.Visible) return;\n \n try {\n this.isLoading = true;\n this.error = null;\n \n // Load all entities first\n await this.loadAllEntities();\n \n if (this.Data?.application && this.IsEditMode) {\n await this.loadApplicationData();\n } else {\n this.resetForm();\n }\n } catch (error: unknown) {\n console.error('Error initializing dialog:', error);\n this.ngZone.run(() => {\n this.error = error instanceof Error ? error.message : 'Failed to load dialog data';\n this.cdr.markForCheck();\n });\n } finally {\n this.ngZone.run(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n private async loadAllEntities(): Promise<void> {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJEntityEntity>({\n EntityName: 'MJ: Entities',\n ResultType: 'entity_object',\n OrderBy: 'Name ASC'\n });\n \n this.AllEntities = result.Success ? result.Results : [];\n }\n\n private resetForm(): void {\n this.ApplicationForm.reset({\n name: '',\n description: ''\n });\n this.ApplicationEntities = [];\n this.AvailableEntities = [...this.AllEntities];\n this.EntitySearchTerm = '';\n this.error = null;\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n if (this.Visible) {\n this.onCancel();\n }\n }\n\n public get WindowTitle(): string {\n return this.IsEditMode ? 'Edit Application' : 'Create New Application';\n }\n\n /** @deprecated Use {@link WindowTitle}. */\n public get windowTitle(): string {\n return this.WindowTitle;\n }\n\n public get IsEditMode(): boolean {\n return this.Data?.mode === 'edit';\n }\n\n /** @deprecated Use {@link IsEditMode}. */\n public get isEditMode(): boolean {\n return this.IsEditMode;\n }\n\n private async loadApplicationData(): Promise<void> {\n if (!this.Data?.application) return;\n\n const app = this.Data.application;\n this.ApplicationForm.patchValue({\n name: app.Name,\n description: app.Description\n });\n\n // Load existing MJApplicationEntity records\n await this.loadApplicationEntities(app.ID);\n }\n\n private async loadApplicationEntities(applicationId: string): Promise<void> {\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<MJApplicationEntityEntity>({\n EntityName: 'MJ: Application Entities',\n ExtraFilter: `ApplicationID='${applicationId}'`,\n ResultType: 'entity_object',\n OrderBy: 'Sequence ASC'\n });\n\n if (result.Success && result.Results) {\n this.ApplicationEntities = [];\n const usedEntityIds = new Set<string>();\n\n for (const appEntity of result.Results) {\n const entity = this.AllEntities.find(e => UUIDsEqual(e.ID, appEntity.EntityID));\n if (entity) {\n this.ApplicationEntities.push({\n entity,\n applicationEntity: appEntity,\n sequence: appEntity.Sequence || 0,\n defaultForNewUser: appEntity.DefaultForNewUser || false,\n isNew: false,\n hasChanges: false\n });\n usedEntityIds.add(entity.ID);\n }\n }\n\n // Set available entities (excluding already assigned ones)\n this.AvailableEntities = this.AllEntities.filter(e => !usedEntityIds.has(e.ID));\n }\n } catch (error) {\n console.warn('Failed to load application entities:', error);\n this.AvailableEntities = [...this.AllEntities];\n }\n }\n\n public AddEntity(entity: MJEntityEntity): void {\n // Add entity to application\n this.ApplicationEntities.push({\n entity,\n sequence: this.ApplicationEntities.length + 1,\n defaultForNewUser: false,\n isNew: true,\n hasChanges: false\n });\n\n // Update all sequences to be consecutive\n this.updateSequences();\n\n // Remove from available entities\n this.AvailableEntities = this.AvailableEntities.filter(e => !UUIDsEqual(e.ID, entity.ID));\n }\n\n /** @deprecated Use {@link AddEntity}. */\n public addEntity(entity: MJEntityEntity): void {\n return this.AddEntity(entity);\n }\n\n public RemoveEntity(config: ApplicationEntityConfig): void {\n // Remove from application entities\n this.ApplicationEntities = this.ApplicationEntities.filter(ae => !UUIDsEqual(ae.entity.ID, config.entity.ID));\n \n // Update all sequences to be consecutive\n this.updateSequences();\n \n // Add back to available entities if not already there\n if (!this.AvailableEntities.find(e => UUIDsEqual(e.ID, config.entity.ID))) {\n this.AvailableEntities.push(config.entity);\n this.AvailableEntities.sort((a, b) => (a.Name || '').localeCompare(b.Name || ''));\n }\n }\n\n /** @deprecated Use {@link RemoveEntity}. */\n public removeEntity(config: ApplicationEntityConfig): void {\n return this.RemoveEntity(config);\n }\n\n public MoveEntityUp(index: number): void {\n if (index > 0) {\n const temp = this.ApplicationEntities[index];\n this.ApplicationEntities[index] = this.ApplicationEntities[index - 1];\n this.ApplicationEntities[index - 1] = temp;\n this.updateSequences();\n }\n }\n\n /** @deprecated Use {@link MoveEntityUp}. */\n public moveEntityUp(index: number): void {\n return this.MoveEntityUp(index);\n }\n\n public MoveEntityDown(index: number): void {\n if (index < this.ApplicationEntities.length - 1) {\n const temp = this.ApplicationEntities[index];\n this.ApplicationEntities[index] = this.ApplicationEntities[index + 1];\n this.ApplicationEntities[index + 1] = temp;\n this.updateSequences();\n }\n }\n\n /** @deprecated Use {@link MoveEntityDown}. */\n public moveEntityDown(index: number): void {\n return this.MoveEntityDown(index);\n }\n\n private updateSequences(): void {\n this.ApplicationEntities.forEach((config, index) => {\n config.sequence = index + 1;\n if (!config.isNew) {\n config.hasChanges = true;\n }\n });\n }\n\n public OnDefaultForNewUserChange(config: ApplicationEntityConfig): void {\n if (!config.isNew) {\n config.hasChanges = true;\n }\n }\n\n /** @deprecated Use {@link OnDefaultForNewUserChange}. */\n public onDefaultForNewUserChange(config: ApplicationEntityConfig): void {\n return this.OnDefaultForNewUserChange(config);\n }\n\n public get HasEntityChanges(): boolean {\n return this.ApplicationEntities.some(ae => ae.isNew || ae.hasChanges);\n }\n\n /** @deprecated Use {@link HasEntityChanges}. */\n public get hasEntityChanges(): boolean {\n return this.HasEntityChanges;\n }\n\n // Filtered available entities based on search term\n public get FilteredAvailableEntities(): MJEntityEntity[] {\n if (!this.EntitySearchTerm || !this.EntitySearchTerm.trim()) {\n return this.AvailableEntities;\n }\n const searchLower = this.EntitySearchTerm.toLowerCase().trim();\n return this.AvailableEntities.filter(entity =>\n (entity.DisplayName || '').toLowerCase().includes(searchLower) ||\n (entity.Name || '').toLowerCase().includes(searchLower) ||\n (entity.Description || '').toLowerCase().includes(searchLower)\n );\n }\n\n /** @deprecated Use {@link FilteredAvailableEntities}. */\n public get filteredAvailableEntities(): MJEntityEntity[] {\n return this.FilteredAvailableEntities;\n }\n\n public GetEntityDisplayName(entity: MJEntityEntity): string {\n return entity.DisplayName || entity.Name;\n }\n\n /** @deprecated Use {@link GetEntityDisplayName}. */\n public getEntityDisplayName(entity: MJEntityEntity): string {\n return this.GetEntityDisplayName(entity);\n }\n\n public OnEntitySearchChange(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.EntitySearchTerm = value;\n }\n\n /** @deprecated Use {@link OnEntitySearchChange}. */\n public onEntitySearchChange(event: Event): void {\n return this.OnEntitySearchChange(event);\n }\n\n public ClearEntitySearch(): void {\n this.EntitySearchTerm = '';\n }\n\n /** @deprecated Use {@link ClearEntitySearch}. */\n public clearEntitySearch(): void {\n return this.ClearEntitySearch();\n }\n\n public toggleSection(section: 'basicInfo' | 'entities' | 'systemInfo'): void {\n this.SectionExpanded[section] = !this.SectionExpanded[section];\n }\n\n public ToggleFullscreen(): void {\n this.IsFullscreen = !this.IsFullscreen;\n }\n\n /** @deprecated Use {@link ToggleFullscreen}. */\n public toggleFullscreen(): void {\n return this.ToggleFullscreen();\n }\n\n public OnEntityDrop(event: CdkDragDrop<ApplicationEntityConfig[]>): void {\n if (event.previousIndex !== event.currentIndex) {\n moveItemInArray(this.ApplicationEntities, event.previousIndex, event.currentIndex);\n this.updateSequences();\n }\n }\n\n /** @deprecated Use {@link OnEntityDrop}. */\n public onEntityDrop(event: CdkDragDrop<ApplicationEntityConfig[]>): void {\n return this.OnEntityDrop(event);\n }\n\n public async OnSubmit(): Promise<void> {\n if (this.ApplicationForm.invalid) {\n this.markFormGroupTouched(this.ApplicationForm);\n return;\n }\n\n this.isLoading = true;\n this.error = null;\n\n try {\n let application: MJApplicationEntity;\n\n if (this.IsEditMode && this.Data?.application) {\n // Edit existing application\n application = this.Data.application;\n } else {\n // Create new application\n application = await this.metadata.GetEntityObject<MJApplicationEntity>('MJ: Applications');\n application.NewRecord();\n }\n\n // Update application properties\n const formValue = this.ApplicationForm.value;\n application.Name = formValue.name;\n application.Description = formValue.description || null;\n\n // Save application\n const saveResult = await application.Save();\n if (!saveResult) {\n throw new Error(application.LatestResult?.Message || 'Failed to save application');\n }\n\n // Save application entities if there are changes\n if (this.HasEntityChanges) {\n await this.saveApplicationEntities(application.ID);\n }\n\n this.Result.emit({ action: 'save', application });\n\n } catch (error: unknown) {\n console.error('Error saving application:', error);\n this.ngZone.run(() => {\n this.error = error instanceof Error ? error.message : 'An unexpected error occurred';\n this.cdr.markForCheck();\n });\n } finally {\n this.ngZone.run(() => {\n this.isLoading = false;\n this.cdr.markForCheck();\n });\n }\n }\n\n /** @deprecated Use {@link OnSubmit}. */\n public async onSubmit(): Promise<void> {\n return this.OnSubmit();\n }\n\n private async saveApplicationEntities(applicationId: string): Promise<void> {\n // Save or update each MJApplicationEntity record\n for (const config of this.ApplicationEntities) {\n if (config.isNew || config.hasChanges) {\n let appEntity: MJApplicationEntityEntity;\n\n if (config.isNew) {\n // Create new MJApplicationEntity\n appEntity = await this.metadata.GetEntityObject<MJApplicationEntityEntity>('MJ: Application Entities');\n appEntity.NewRecord();\n appEntity.ApplicationID = applicationId;\n appEntity.EntityID = config.entity.ID;\n } else if (config.applicationEntity) {\n // Update existing MJApplicationEntity\n appEntity = config.applicationEntity;\n } else {\n continue;\n }\n\n appEntity.Sequence = config.sequence;\n appEntity.DefaultForNewUser = config.defaultForNewUser;\n\n const saveResult = await appEntity.Save();\n if (!saveResult) {\n console.warn(`Failed to save MJApplicationEntity for ${config.entity.Name}:`, appEntity.LatestResult?.Message);\n }\n }\n }\n }\n\n public onCancel(): void {\n this.Result.emit({ action: 'cancel' });\n }\n\n private markFormGroupTouched(formGroup: FormGroup): void {\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.get(key);\n control?.markAsTouched();\n });\n }\n}","@if (visible) {\n <div class=\"modal-backdrop\" (click)=\"onCancel()\" role=\"presentation\">\n <div\n class=\"modal-dialog\"\n [class.fullscreen]=\"isFullscreen\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"application-dialog-title\"\n aria-describedby=\"application-dialog-description\"\n >\n <!-- Modal Header -->\n <div class=\"modal-header\" [class.create-mode]=\"!isEditMode\" [class.edit-mode]=\"isEditMode\">\n <div class=\"modal-header-content\">\n <h2 class=\"modal-title\" id=\"application-dialog-title\">\n <i class=\"fa-solid\" [class.fa-plus]=\"!isEditMode\" [class.fa-layer-group]=\"isEditMode\" aria-hidden=\"true\"></i>\n {{ isEditMode ? 'Edit Application' : 'Create New Application' }}\n </h2>\n <p class=\"modal-subtitle\" id=\"application-dialog-description\">\n {{ isEditMode ? 'Update application information and settings' : 'Add a new application to the system' }}\n </p>\n </div>\n <div class=\"modal-header-actions\">\n <button\n class=\"modal-action-btn\"\n (click)=\"toggleFullscreen()\"\n [attr.aria-label]=\"isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'\"\n type=\"button\"\n >\n <i class=\"fa-solid\" [class.fa-compress]=\"isFullscreen\" [class.fa-expand]=\"!isFullscreen\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"modal-close\"\n (click)=\"onCancel()\"\n aria-label=\"Close dialog\"\n type=\"button\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n\n <!-- Modal Body -->\n <div class=\"modal-body\">\n <form [formGroup]=\"applicationForm\" (ngSubmit)=\"onSubmit()\">\n <!-- Error Alert -->\n @if (error) {\n <div class=\"form-section\">\n <mj-alert Variant=\"error\" [Message]=\"error\" />\n </div>\n }\n\n <!-- Basic Information Section -->\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.basicInfo\" (ExpandedChange)=\"toggleSection('basicInfo')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\" aria-hidden=\"true\"></i>\n Application Information\n </span>\n <span class=\"section-description\">Define the application's basic properties</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <div class=\"form-field\">\n <label class=\"field-label required\" for=\"app-name\">Application Name</label>\n <input\n id=\"app-name\"\n type=\"text\"\n class=\"field-input\"\n formControlName=\"name\"\n placeholder=\"My Application\"\n [class.error]=\"applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched\"\n [attr.aria-invalid]=\"applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched\"\n aria-describedby=\"app-name-error\"\n />\n @if (applicationForm.get('name')?.invalid && applicationForm.get('name')?.touched) {\n <div class=\"field-error\" id=\"app-name-error\" role=\"alert\">\n <i class=\"fa-solid fa-exclamation-circle\" aria-hidden=\"true\"></i>\n @if (applicationForm.get('name')?.errors?.['required']) {\n Application name is required\n }\n @if (applicationForm.get('name')?.errors?.['maxlength']) {\n Application name cannot exceed 100 characters\n }\n </div>\n }\n </div>\n\n <div class=\"form-field\">\n <label class=\"field-label\" for=\"app-description\">Description</label>\n <textarea\n id=\"app-description\"\n class=\"field-textarea\"\n formControlName=\"description\"\n placeholder=\"Describe the application's purpose and functionality...\"\n rows=\"4\"\n ></textarea>\n <div class=\"field-hint\">\n Provide a clear description of what this application does and its main features.\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- Entity Management Section -->\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.entities\" (ExpandedChange)=\"toggleSection('entities')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-database\" aria-hidden=\"true\"></i>\n Application Entities\n </span>\n <span class=\"section-description\">Manage which entities are included in this application</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <!-- Assigned Entities -->\n @if (applicationEntities.length > 0) {\n <div class=\"assigned-entities\">\n <h4 class=\"subsection-title\">Assigned Entities ({{ applicationEntities.length }})</h4>\n <div class=\"entities-list\"\n role=\"list\"\n cdkDropList\n (cdkDropListDropped)=\"onEntityDrop($event)\">\n @for (config of applicationEntities; track config.entity.ID; let i = $index) {\n <div\n class=\"entity-item\"\n [class.is-new]=\"config.isNew\"\n [class.has-changes]=\"config.hasChanges\"\n role=\"listitem\"\n cdkDrag\n >\n <i class=\"fa-solid fa-grip-vertical drag-handle\" aria-hidden=\"true\"></i>\n <div class=\"entity-info\">\n <div class=\"entity-icon\">\n <i class=\"fa-solid fa-table\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"entity-details\">\n <div class=\"entity-name\">\n {{ getEntityDisplayName(config.entity) }}\n @if (config.entity.Description) {\n <i\n class=\"fa-solid fa-info-circle entity-info-icon\"\n [title]=\"config.entity.Description\"\n [attr.aria-label]=\"'Entity description: ' + config.entity.Description\"\n ></i>\n }\n </div>\n </div>\n </div>\n\n <div class=\"entity-config\">\n <div class=\"config-item\">\n <label class=\"config-label\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"config.defaultForNewUser\"\n [ngModelOptions]=\"{standalone: true}\"\n (change)=\"onDefaultForNewUserChange(config)\"\n class=\"config-checkbox\"\n />\n <span class=\"checkbox-text\">Default for new users</span>\n </label>\n </div>\n <div class=\"sequence-badge\" [attr.aria-label]=\"'Sequence ' + config.sequence\">{{ config.sequence }}</div>\n </div>\n\n <div class=\"entity-actions\">\n <button\n type=\"button\"\n class=\"btn-icon btn-danger\"\n (click)=\"removeEntity(config)\"\n title=\"Remove entity\"\n [attr.aria-label]=\"'Remove ' + getEntityDisplayName(config.entity)\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"no-entities\">\n <i class=\"fa-solid fa-database\" aria-hidden=\"true\"></i>\n <p>No entities assigned to this application</p>\n <p class=\"empty-subtext\">Add entities from the available list below</p>\n </div>\n }\n\n <!-- Available Entities -->\n @if (availableEntities.length > 0) {\n <div class=\"available-entities\">\n <div class=\"available-entities-header\">\n <h4 class=\"subsection-title\">Available Entities ({{ filteredAvailableEntities.length }} of {{ availableEntities.length }})</h4>\n <div class=\"entity-search\">\n <i class=\"fa-solid fa-search entity-search-icon\" aria-hidden=\"true\"></i>\n <input\n type=\"text\"\n class=\"entity-search-input\"\n placeholder=\"Search entities...\"\n [value]=\"entitySearchTerm\"\n (input)=\"onEntitySearchChange($event)\"\n aria-label=\"Search available entities\"\n />\n @if (entitySearchTerm) {\n <button\n type=\"button\"\n class=\"entity-search-clear\"\n (click)=\"clearEntitySearch()\"\n aria-label=\"Clear search\"\n >\n <i class=\"fa-solid fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n </div>\n @if (filteredAvailableEntities.length > 0) {\n <div class=\"entities-grid\" role=\"list\">\n @for (entity of filteredAvailableEntities; track entity.ID) {\n <button\n type=\"button\"\n class=\"entity-chip\"\n (click)=\"addEntity(entity)\"\n role=\"listitem\"\n [attr.aria-label]=\"'Add ' + getEntityDisplayName(entity)\"\n >\n <div class=\"chip-content\">\n <i class=\"fa-solid fa-plus\" aria-hidden=\"true\"></i>\n <span class=\"chip-name\">{{ getEntityDisplayName(entity) }}</span>\n </div>\n </button>\n }\n </div>\n } @else {\n <div class=\"no-search-results\">\n <i class=\"fa-solid fa-search\" aria-hidden=\"true\"></i>\n <p>No entities match \"{{ entitySearchTerm }}\"</p>\n </div>\n }\n </div>\n } @else {\n <div class=\"all-assigned\">\n <i class=\"fa-solid fa-check-circle\" aria-hidden=\"true\"></i>\n <p>All entities have been assigned to this application</p>\n </div>\n }\n </div>\n </div>\n </mj-accordion-panel>\n\n <!-- System Information Section (Edit Mode Only) -->\n @if (isEditMode) {\n <mj-accordion-panel class=\"app-dialog-section\" [Expanded]=\"sectionExpanded.systemInfo\" (ExpandedChange)=\"toggleSection('systemInfo')\">\n <ng-template mjAccordionTitle>\n <span class=\"app-dialog-section-title\">\n <span class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\" aria-hidden=\"true\"></i>\n System Information\n </span>\n <span class=\"section-description\">Application metadata and audit information</span>\n </span>\n </ng-template>\n\n <div class=\"section-content\">\n <div class=\"form-grid\">\n <div class=\"info-grid\">\n <div class=\"info-item\">\n <span class=\"info-label\">Created</span>\n <span class=\"info-value\">{{ data?.application?.__mj_CreatedAt | date:'medium' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Last Updated</span>\n <span class=\"info-value\">{{ data?.application?.__mj_UpdatedAt | date:'medium' }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Application ID</span>\n <span class=\"info-value\">{{ data?.application?.ID }}</span>\n </div>\n <div class=\"info-item\">\n <span class=\"info-label\">Total Entities</span>\n <span class=\"info-value\">{{ applicationEntities.length }}</span>\n </div>\n </div>\n </div>\n </div>\n </mj-accordion-panel>\n }\n </form>\n </div>\n\n <!-- Modal Footer - Primary and Cancel buttons on RIGHT -->\n <div class=\"modal-footer\">\n <button\n type=\"submit\"\n mjButton variant=\"primary\"\n [disabled]=\"applicationForm.invalid || isLoading\"\n (click)=\"onSubmit()\"\n [attr.aria-busy]=\"isLoading\"\n >\n @if (isLoading) {\n <i class=\"fa-solid fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\" aria-hidden=\"true\"></i>\n {{ isEditMode ? 'Update Application' : 'Create Application' }}\n }\n </button>\n <button type=\"button\" mjButton (click)=\"onCancel()\">\n Cancel\n </button>\n </div>\n </div>\n </div>\n}\n"]}
@@ -19,18 +19,58 @@ interface FilterOptions {
19
19
  export declare class ApplicationManagementComponent extends BaseDashboard implements OnDestroy {
20
20
  private cdr;
21
21
  private ngZone;
22
- applications: MJApplicationEntity[];
23
- filteredApplications: MJApplicationEntity[];
24
- selectedApp: MJApplicationEntity | null;
22
+ Applications: MJApplicationEntity[];
23
+ /** @deprecated Use {@link Applications}. */
24
+ get applications(): MJApplicationEntity[];
25
+ /** @deprecated Use {@link Applications}. */
26
+ set applications(value: MJApplicationEntity[]);
27
+ FilteredApplications: MJApplicationEntity[];
28
+ /** @deprecated Use {@link FilteredApplications}. */
29
+ get filteredApplications(): MJApplicationEntity[];
30
+ /** @deprecated Use {@link FilteredApplications}. */
31
+ set filteredApplications(value: MJApplicationEntity[]);
32
+ SelectedApp: MJApplicationEntity | null;
33
+ /** @deprecated Use {@link SelectedApp}. */
34
+ get selectedApp(): MJApplicationEntity | null;
35
+ /** @deprecated Use {@link SelectedApp}. */
36
+ set selectedApp(value: MJApplicationEntity | null);
25
37
  isLoading: boolean;
26
38
  error: string | null;
27
- appEntities: Map<string, MJApplicationEntityEntity[]>;
28
- stats: AppStats;
29
- filters$: BehaviorSubject<FilterOptions>;
30
- showApplicationDialog: boolean;
31
- applicationDialogData: ApplicationDialogData | null;
32
- showDeleteConfirm: boolean;
33
- expandedAppId: string | null;
39
+ AppEntities: Map<string, MJApplicationEntityEntity[]>;
40
+ /** @deprecated Use {@link AppEntities}. */
41
+ get appEntities(): Map<string, MJApplicationEntityEntity[]>;
42
+ /** @deprecated Use {@link AppEntities}. */
43
+ set appEntities(value: Map<string, MJApplicationEntityEntity[]>);
44
+ Stats: AppStats;
45
+ /** @deprecated Use {@link Stats}. */
46
+ get stats(): AppStats;
47
+ /** @deprecated Use {@link Stats}. */
48
+ set stats(value: AppStats);
49
+ Filters$: BehaviorSubject<FilterOptions>;
50
+ /** @deprecated Use {@link Filters$}. */
51
+ get filters$(): BehaviorSubject<FilterOptions>;
52
+ /** @deprecated Use {@link Filters$}. */
53
+ set filters$(value: BehaviorSubject<FilterOptions>);
54
+ ShowApplicationDialog: boolean;
55
+ /** @deprecated Use {@link ShowApplicationDialog}. */
56
+ get showApplicationDialog(): boolean;
57
+ /** @deprecated Use {@link ShowApplicationDialog}. */
58
+ set showApplicationDialog(value: boolean);
59
+ ApplicationDialogData: ApplicationDialogData | null;
60
+ /** @deprecated Use {@link ApplicationDialogData}. */
61
+ get applicationDialogData(): ApplicationDialogData | null;
62
+ /** @deprecated Use {@link ApplicationDialogData}. */
63
+ set applicationDialogData(value: ApplicationDialogData | null);
64
+ ShowDeleteConfirm: boolean;
65
+ /** @deprecated Use {@link ShowDeleteConfirm}. */
66
+ get showDeleteConfirm(): boolean;
67
+ /** @deprecated Use {@link ShowDeleteConfirm}. */
68
+ set showDeleteConfirm(value: boolean);
69
+ ExpandedAppId: string | null;
70
+ /** @deprecated Use {@link ExpandedAppId}. */
71
+ get expandedAppId(): string | null;
72
+ /** @deprecated Use {@link ExpandedAppId}. */
73
+ set expandedAppId(value: string | null);
34
74
  protected destroy$: Subject<void>;
35
75
  private get metadata();
36
76
  constructor(cdr: ChangeDetectorRef, ngZone: NgZone);
@@ -38,6 +78,8 @@ export declare class ApplicationManagementComponent extends BaseDashboard implem
38
78
  protected initDashboard(): void;
39
79
  protected loadData(): void;
40
80
  ngOnDestroy(): void;
81
+ LoadInitialData(): Promise<void>;
82
+ /** @deprecated Use {@link LoadInitialData}. */
41
83
  loadInitialData(): Promise<void>;
42
84
  private loadApplications;
43
85
  private loadApplicationEntities;
@@ -45,14 +87,26 @@ export declare class ApplicationManagementComponent extends BaseDashboard implem
45
87
  private setupFilterSubscription;
46
88
  private applyFilters;
47
89
  private calculateStats;
90
+ OnStatusFilterChange(status: 'all' | 'active' | 'inactive'): void;
91
+ /** @deprecated Use {@link OnStatusFilterChange}. */
48
92
  onStatusFilterChange(status: 'all' | 'active' | 'inactive'): void;
93
+ UpdateFilter(partial: Partial<FilterOptions>): void;
94
+ /** @deprecated Use {@link UpdateFilter}. */
49
95
  updateFilter(partial: Partial<FilterOptions>): void;
96
+ get FilterFields(): FilterFieldConfig[];
97
+ /** @deprecated Use {@link FilterFields}. */
50
98
  get filterFields(): FilterFieldConfig[];
99
+ get FilterValues(): Record<string, unknown>;
100
+ /** @deprecated Use {@link FilterValues}. */
51
101
  get filterValues(): Record<string, unknown>;
52
102
  /** Total active filters (Status) — drives the Filter button badge. */
53
103
  get TotalActiveFilterCount(): number;
104
+ OnFilterPanelChange(values: Record<string, unknown>): void;
105
+ /** @deprecated Use {@link OnFilterPanelChange}. */
54
106
  onFilterPanelChange(values: Record<string, unknown>): void;
55
107
  /** Clear all filters (Status); search persists. */
108
+ ClearAllAppliedFilters(): void;
109
+ /** @deprecated Use {@link ClearAllAppliedFilters}. */
56
110
  clearAllAppliedFilters(): void;
57
111
  /** True when search and/or panel filters are narrowing the list — gates the
58
112
  * no-results empty-state "Reset filters" CTA. */
@@ -60,19 +114,47 @@ export declare class ApplicationManagementComponent extends BaseDashboard implem
60
114
  /** Reset everything narrowing the list (search + Status) and refresh
61
115
  * immediately. Wired to the no-results empty-state CTA. Unlike
62
116
  * clearAllAppliedFilters(), this also clears the search box. */
117
+ ResetAllFiltersAndSearch(): void;
118
+ /** @deprecated Use {@link ResetAllFiltersAndSearch}. */
63
119
  resetAllFiltersAndSearch(): void;
120
+ ToggleAppExpansion(appId: string): void;
121
+ /** @deprecated Use {@link ToggleAppExpansion}. */
64
122
  toggleAppExpansion(appId: string): void;
123
+ IsAppExpanded(appId: string): boolean;
124
+ /** @deprecated Use {@link IsAppExpanded}. */
65
125
  isAppExpanded(appId: string): boolean;
126
+ GetAppEntities(appId: string): MJApplicationEntityEntity[];
127
+ /** @deprecated Use {@link GetAppEntities}. */
66
128
  getAppEntities(appId: string): MJApplicationEntityEntity[];
129
+ GetEntityInfo(entityId: string): EntityInfo | undefined;
130
+ /** @deprecated Use {@link GetEntityInfo}. */
67
131
  getEntityInfo(entityId: string): EntityInfo | undefined;
132
+ CreateNewApplication(): void;
133
+ /** @deprecated Use {@link CreateNewApplication}. */
68
134
  createNewApplication(): void;
135
+ EditApplication(app: MJApplicationEntity): void;
136
+ /** @deprecated Use {@link EditApplication}. */
69
137
  editApplication(app: MJApplicationEntity): void;
138
+ ConfirmDeleteApplication(app: MJApplicationEntity): void;
139
+ /** @deprecated Use {@link ConfirmDeleteApplication}. */
70
140
  confirmDeleteApplication(app: MJApplicationEntity): void;
141
+ DeleteApplication(): Promise<void>;
142
+ /** @deprecated Use {@link DeleteApplication}. */
71
143
  deleteApplication(): Promise<void>;
144
+ OnApplicationDialogResult(result: ApplicationDialogResult): void;
145
+ /** @deprecated Use {@link OnApplicationDialogResult}. */
72
146
  onApplicationDialogResult(result: ApplicationDialogResult): void;
147
+ GetAppIcon(app: MJApplicationEntity): string;
148
+ /** @deprecated Use {@link GetAppIcon}. */
73
149
  getAppIcon(app: MJApplicationEntity): string;
150
+ GetAppStatusClass(app: MJApplicationEntity): string;
151
+ /** @deprecated Use {@link GetAppStatusClass}. */
74
152
  getAppStatusClass(app: MJApplicationEntity): string;
153
+ GetAppStatusLabel(app: MJApplicationEntity): string;
154
+ /** @deprecated Use {@link GetAppStatusLabel}. */
75
155
  getAppStatusLabel(app: MJApplicationEntity): string;
156
+ RefreshData(): void;
157
+ /** @deprecated Use {@link RefreshData}. */
76
158
  refreshData(): void;
77
159
  static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationManagementComponent, never>;
78
160
  static ɵcmp: i0.ɵɵComponentDeclaration<ApplicationManagementComponent, "mj-application-management", never, {}, {}, never, never, false, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"application-management.component.d.ts","sourceRoot":"","sources":["../../../src/lib/application-management/application-management.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application-management.component.d.ts","sourceRoot":"","sources":["../../../src/lib/application-management/application-management.component.ts"],"names":[],"mappings":"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"}