cloud-ide-academics 0.0.24 → 0.0.25

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 (18) hide show
  1. package/fesm2022/{cloud-ide-academics-class-program-term-create.component-C5FnRTND.mjs → cloud-ide-academics-class-program-term-create.component-DDM2oLT-.mjs} +4 -4
  2. package/fesm2022/{cloud-ide-academics-class-program-term-create.component-C5FnRTND.mjs.map → cloud-ide-academics-class-program-term-create.component-DDM2oLT-.mjs.map} +1 -1
  3. package/fesm2022/{cloud-ide-academics-class-program-term-list.component-BaFtTKcS.mjs → cloud-ide-academics-class-program-term-list.component-DG2G880p.mjs} +29 -5
  4. package/fesm2022/cloud-ide-academics-class-program-term-list.component-DG2G880p.mjs.map +1 -0
  5. package/fesm2022/{cloud-ide-academics-cloud-ide-academics-DxRzuyxa.mjs → cloud-ide-academics-cloud-ide-academics-BTOmrraW.mjs} +18 -18
  6. package/fesm2022/cloud-ide-academics-cloud-ide-academics-BTOmrraW.mjs.map +1 -0
  7. package/fesm2022/{cloud-ide-academics-program-class-create.component-Co60CYKC.mjs → cloud-ide-academics-program-class-create.component-Rhogi_gF.mjs} +2 -3
  8. package/fesm2022/cloud-ide-academics-program-class-create.component-Rhogi_gF.mjs.map +1 -0
  9. package/fesm2022/{cloud-ide-academics-program-class-list.component-jPpK9V-X.mjs → cloud-ide-academics-program-class-list.component-Db_VXPLN.mjs} +2 -2
  10. package/fesm2022/{cloud-ide-academics-program-class-list.component-jPpK9V-X.mjs.map → cloud-ide-academics-program-class-list.component-Db_VXPLN.mjs.map} +1 -1
  11. package/fesm2022/{cloud-ide-academics-program-term-section-create.component-Dx9JQOwW.mjs → cloud-ide-academics-program-term-section-create.component-BD5NgphA.mjs} +35 -1
  12. package/fesm2022/cloud-ide-academics-program-term-section-create.component-BD5NgphA.mjs.map +1 -0
  13. package/fesm2022/cloud-ide-academics.mjs +1 -1
  14. package/package.json +1 -1
  15. package/fesm2022/cloud-ide-academics-class-program-term-list.component-BaFtTKcS.mjs.map +0 -1
  16. package/fesm2022/cloud-ide-academics-cloud-ide-academics-DxRzuyxa.mjs.map +0 -1
  17. package/fesm2022/cloud-ide-academics-program-class-create.component-Co60CYKC.mjs.map +0 -1
  18. package/fesm2022/cloud-ide-academics-program-term-section-create.component-Dx9JQOwW.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-ide-academics-class-program-term-list.component-DG2G880p.mjs","sources":["../../../projects/cloud-ide-academics/src/lib/collection/class-program-term-management/components/class-program-term-list/class-program-term-list.component.ts","../../../projects/cloud-ide-academics/src/lib/collection/class-program-term-management/components/class-program-term-list/class-program-term-list.component.html"],"sourcesContent":["import { Component, signal, computed, viewChild, TemplateRef, DestroyRef, inject, OnInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { CideEleDataGridComponent, CideIconComponent, CideEleButtonComponent, GridConfiguration, GridEvent, CideEleDropdownComponent, DropdownItem, NotificationService, ConfirmationService, CideSelectComponent } from 'cloud-ide-element';\r\nimport { TemplateContext } from 'cloud-ide-element';\r\nimport { AppStateHelperService, CideLytSharedWrapperComponent } from 'cloud-ide-layout';\r\nimport { \r\n MClassProgramTerm,\r\n type MClassProgramTermDeletePayload,\r\n type MClassProgramTermToggleStatusPayload,\r\n generateObjectFromString,\r\n type MClassProgramMaster,\r\n type classProgramMasterControllerResponse,\r\n AcaClassPrgBranchListPayload,\r\n type classPrgBranchControllerResponse\r\n} from 'cloud-ide-lms-model';\r\nimport { CideLytClassProgramTermService } from '../../services/class-program-term.service';\r\nimport { CLASS_PROGRAM_MASTER_SERVICE_TOKEN, type IClassProgramMasterService } from 'cloud-ide-shared';\r\nimport { CideLytClassProgramBranchService } from '../../../class-program-branch-management/services/class-program-branch.service';\r\n\r\n// Interfaces based on the model files\r\ninterface ClassProgramTerm {\r\n _id?: string;\r\n acapt_code?: string;\r\n acapt_name?: string;\r\n acapt_description?: string;\r\n acapt_class_program_id_acacpm?: {\r\n _id?: string;\r\n acacpm_name?: string;\r\n };\r\n acapt_parent_class_prog_term_acapt?: {\r\n _id?: string;\r\n acapt_name?: string;\r\n };\r\n acapt_isactive?: boolean;\r\n acapt_iscurrent?: boolean;\r\n acapt_islocked?: boolean;\r\n}\r\n\r\ninterface ClassProgramConfiguration {\r\n branchType?: boolean;\r\n semesterType?: boolean;\r\n}\r\n\r\ninterface ProgramClass {\r\n _id?: string;\r\n acacpm_name?: string;\r\n acacpm_code?: string;\r\n acacpm_alise_title?: string;\r\n acacpm_description?: string;\r\n acacpm_class_program_id_sygms?: any;\r\n}\r\n\r\ninterface ClassProgramBranch {\r\n _id?: string;\r\n acabrn_name?: string;\r\n acabrn_code?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'cide-academics-class-program-term-list',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CideEleDataGridComponent,\r\n CideIconComponent,\r\n CideEleButtonComponent,\r\n CideEleDropdownComponent,\r\n CideSelectComponent,\r\n CideLytSharedWrapperComponent\r\n ],\r\n templateUrl: './class-program-term-list.component.html'\r\n})\r\nexport class ClassProgramTermListComponent implements OnInit {\r\n // Dependency injection\r\n private destroyRef = inject(DestroyRef);\r\n private router = inject(Router);\r\n private route = inject(ActivatedRoute);\r\n private appState = inject(AppStateHelperService);\r\n private notificationService = inject(NotificationService);\r\n private confirmationService = inject(ConfirmationService);\r\n private classProgramTermService = inject(CideLytClassProgramTermService);\r\n private classProgramMasterService = inject(CLASS_PROGRAM_MASTER_SERVICE_TOKEN) as IClassProgramMasterService;\r\n private classProgramBranchService = inject(CideLytClassProgramBranchService);\r\n\r\n // Modern ViewChild signals for template renderers (Angular 20 approach)\r\n classProgramTermDetailsRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('classProgramTermDetailsRendererTemplate');\r\n classProgramTermStatusRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('classProgramTermStatusRendererTemplate');\r\n actionsDropdownRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('actionsDropdownRendererTemplate');\r\n\r\n // Computed template renderers for grid\r\n templateRenderers = computed((): Record<string, TemplateRef<TemplateContext>> => ({\r\n classProgramTermDetailsRenderer: this.classProgramTermDetailsRendererTemplate(),\r\n classProgramTermStatusRenderer: this.classProgramTermStatusRendererTemplate(),\r\n actionsDropdownRenderer: this.actionsDropdownRendererTemplate()\r\n }));\r\n\r\n // Make Math available in template\r\n Math = Math;\r\n\r\n // Signals for reactive state management\r\n classProgramTerms = signal<ClassProgramTerm[]>([]);\r\n loading = signal(false);\r\n error = signal<string | null>(null);\r\n selectedItems = signal<string[]>([]);\r\n searchTerm = signal('');\r\n acabrnId = signal<string | null>(null);\r\n acacpmId = signal<string | null>(null);\r\n \r\n // Class program and branch dropdown signals\r\n classProgramMasters = signal<ProgramClass[]>([]);\r\n classProgramMastersLoading = signal<boolean>(false);\r\n selectedClassProgram = signal<ProgramClass | null>(null);\r\n classProgramBranches = signal<ClassProgramBranch[]>([]);\r\n classProgramBranchesLoading = signal<boolean>(false);\r\n selectedProgramClassId = signal<string | null>(null);\r\n selectedBranchId = signal<string | null>(null);\r\n \r\n // Program term dropdown signals\r\n classProgramTermsForDropdown = signal<ClassProgramTerm[]>([]);\r\n classProgramTermsLoadingForDropdown = signal<boolean>(false);\r\n selectedTermId = signal<string | null>(null);\r\n \r\n // Signal for breadcrumb data that will be passed to shared wrapper\r\n breadcrumbData = signal<{ id: string; label: string; icon?: string; url?: string }[]>([]);\r\n \r\n // Computed signals for dropdown options\r\n classProgramMastersOptions = computed(() => this.classProgramMasters());\r\n classProgramTermsOptions = computed(() => this.classProgramTermsForDropdown());\r\n \r\n // Computed signal to check if branch dropdown should be shown\r\n showBranchDropdown = computed(() => {\r\n const selectedProgram = this.selectedClassProgram();\r\n if (!selectedProgram) return false;\r\n \r\n const generalMaster = selectedProgram.acacpm_class_program_id_sygms;\r\n if (!generalMaster || typeof generalMaster !== 'object') return false;\r\n \r\n let config: ClassProgramConfiguration | undefined;\r\n if ('sygms_configuration' in generalMaster) {\r\n const configValue = generalMaster.sygms_configuration;\r\n if (typeof configValue === 'string') {\r\n try {\r\n config = JSON.parse(configValue) as ClassProgramConfiguration;\r\n } catch {\r\n return false;\r\n }\r\n } else if (typeof configValue === 'object' && configValue !== null) {\r\n config = configValue as ClassProgramConfiguration;\r\n }\r\n }\r\n \r\n return config?.branchType === true;\r\n });\r\n\r\n // Derived list filtered by searchTerm\r\n filteredClassProgramTerms = computed(() => {\r\n const q = (this.searchTerm() || '').toLowerCase().trim();\r\n const items = this.classProgramTerms() || [];\r\n if (!q) return items;\r\n return items.filter(cpt => {\r\n const name = (cpt.acapt_name || '').toLowerCase();\r\n const code = (cpt.acapt_code || '').toLowerCase();\r\n const description = (cpt.acapt_description || '').toLowerCase();\r\n return name.includes(q) || code.includes(q) || description.includes(q);\r\n });\r\n });\r\n\r\n // Grid configuration signal\r\n gridConfig = signal<GridConfiguration<ClassProgramTerm>>({\r\n id: 'class-program-term-list-grid',\r\n columns: [\r\n {\r\n key: 'details',\r\n header: 'Term Details',\r\n type: 'custom',\r\n width: 'auto',\r\n truncate: true,\r\n align: 'left',\r\n renderer: 'classProgramTermDetailsRenderer'\r\n },\r\n {\r\n key: 'acapt_code',\r\n header: 'Code',\r\n type: 'text',\r\n width: '120px',\r\n truncate: true,\r\n align: 'left'\r\n },\r\n {\r\n key: 'acapt_class_program_id_acacpm',\r\n header: 'Program Class',\r\n type: 'custom',\r\n width: '200px',\r\n truncate: true,\r\n align: 'left',\r\n renderer: 'programClassRenderer'\r\n },\r\n {\r\n key: 'acapt_parent_class_prog_term_acapt',\r\n header: 'Parent Term',\r\n type: 'custom',\r\n width: '180px',\r\n truncate: true,\r\n align: 'left',\r\n renderer: 'parentTermRenderer'\r\n },\r\n {\r\n key: 'acapt_isactive',\r\n header: 'Status',\r\n type: 'custom',\r\n width: '120px',\r\n truncate: false,\r\n align: 'center',\r\n renderer: 'classProgramTermStatusRenderer'\r\n },\r\n {\r\n key: 'actions',\r\n header: '',\r\n type: 'custom',\r\n width: '150px',\r\n truncate: false,\r\n align: 'center',\r\n renderer: 'actionsDropdownRenderer'\r\n }\r\n ],\r\n data: [],\r\n trackBy: '_id',\r\n pagination: {\r\n enabled: true,\r\n pageSize: 10,\r\n pageSizeOptions: [10, 25, 50, 100],\r\n showQuickJump: true,\r\n showPageInfo: true,\r\n showRefresh: true\r\n },\r\n search: {\r\n enabled: true,\r\n placeholder: 'Search class program terms...',\r\n searchableColumns: ['acapt_name', 'acapt_code', 'acapt_description'],\r\n debounceMs: 300\r\n },\r\n loading: {\r\n useDefer: true,\r\n skeletonRows: 5,\r\n showOverlay: false\r\n },\r\n scroll: {\r\n enabled: true,\r\n stickyHeader: true,\r\n virtualScroll: false,\r\n rowHeight: 50\r\n },\r\n fullHeight: true,\r\n responsive: true,\r\n striped: false,\r\n bordered: true,\r\n compact: false,\r\n tableClass: 'tw-table-fixed tw-w-full tw-rounded-none'\r\n });\r\n\r\n /**\r\n * Get action dropdown items\r\n */\r\n getActionDropdownItems(classProgramTerm: ClassProgramTerm): DropdownItem[] {\r\n const items: DropdownItem[] = [\r\n {\r\n id: 'view',\r\n label: 'View Details',\r\n icon: 'visibility',\r\n iconColor: 'tw-text-gray-400',\r\n textColor: 'tw-text-gray-700'\r\n },\r\n {\r\n id: 'edit',\r\n label: 'Edit Term',\r\n icon: 'edit',\r\n iconColor: 'tw-text-blue-400',\r\n textColor: 'tw-text-blue-700'\r\n },\r\n {\r\n id: 'toggleStatus',\r\n label: classProgramTerm.acapt_isactive ? 'Deactivate' : 'Activate',\r\n icon: classProgramTerm.acapt_isactive ? 'toggle_off' : 'toggle_on',\r\n iconColor: classProgramTerm.acapt_isactive ? 'tw-text-orange-400' : 'tw-text-green-400',\r\n textColor: classProgramTerm.acapt_isactive ? 'tw-text-orange-700' : 'tw-text-green-700'\r\n },\r\n {\r\n id: 'delete',\r\n label: 'Delete',\r\n icon: 'delete',\r\n iconColor: 'tw-text-red-400',\r\n textColor: 'tw-text-red-700'\r\n }\r\n ];\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n * Handle dropdown item click\r\n */\r\n onDropdownItemClick(item: DropdownItem, classProgramTerm: ClassProgramTerm): void {\r\n switch (item.id) {\r\n case 'view':\r\n this.viewClassProgramTerm(classProgramTerm);\r\n break;\r\n case 'edit':\r\n this.editClassProgramTerm(classProgramTerm);\r\n break;\r\n case 'toggleStatus':\r\n this.toggleClassProgramTermStatus(classProgramTerm);\r\n break;\r\n case 'delete':\r\n this.deleteClassProgramTerm(classProgramTerm);\r\n break;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initializeBreadcrumbData();\r\n this.checkRouteParams();\r\n this.loadClassProgramMasters();\r\n // Don't load terms until class program is selected\r\n // this.loadClassProgramTerms();\r\n }\r\n\r\n /**\r\n * Initialize breadcrumb data for list view\r\n */\r\n private initializeBreadcrumbData(): void {\r\n this.breadcrumbData.set([\r\n {\r\n id: 'list',\r\n label: 'List',\r\n icon: 'list',\r\n url: undefined\r\n }\r\n ]);\r\n }\r\n \r\n /**\r\n * Load class program masters for dropdown\r\n */\r\n loadClassProgramMasters(): void {\r\n this.classProgramMastersLoading.set(true);\r\n const payload: MClassProgramMaster = {\r\n pagination: false,\r\n acacpm_isactive: true\r\n };\r\n \r\n this.classProgramMasterService.getClassProgramMasterList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response: classProgramMasterControllerResponse) => {\r\n if (response?.success && response.data) {\r\n this.classProgramMasters.set(response.data as ProgramClass[]);\r\n } else {\r\n this.classProgramMasters.set([]);\r\n }\r\n this.classProgramMastersLoading.set(false);\r\n },\r\n error: (error) => {\r\n console.error('❌ Error loading class program masters:', error);\r\n this.classProgramMasters.set([]);\r\n this.classProgramMastersLoading.set(false);\r\n }\r\n });\r\n }\r\n \r\n /**\r\n * Handle class program selection change\r\n */\r\n onClassProgramChange(programClassId: string | number | string[] | null): void {\r\n const programId = typeof programClassId === 'string' ? programClassId : (programClassId ? String(programClassId) : null);\r\n console.log('🔄 Class Program changed:', programId);\r\n \r\n this.selectedProgramClassId.set(programId);\r\n this.acacpmId.set(programId);\r\n \r\n if (programId) {\r\n const selectedProgram = this.classProgramMasters().find(p => p._id === programId);\r\n this.selectedClassProgram.set(selectedProgram || null);\r\n \r\n // Load branches if branchType is configured\r\n if (this.showBranchDropdown()) {\r\n this.loadClassProgramBranches(programId);\r\n // Don't load terms yet - wait for branch selection\r\n } else {\r\n this.classProgramBranches.set([]);\r\n this.selectedBranchId.set(null);\r\n this.acabrnId.set(null);\r\n // Load program terms directly if no branch dropdown\r\n this.loadClassProgramTermsForDropdown(programId);\r\n // Load terms for grid only when class program is selected (no branch required)\r\n this.loadClassProgramTerms();\r\n }\r\n } else {\r\n this.selectedClassProgram.set(null);\r\n this.classProgramBranches.set([]);\r\n this.selectedBranchId.set(null);\r\n this.acabrnId.set(null);\r\n this.classProgramTermsForDropdown.set([]);\r\n this.selectedTermId.set(null);\r\n // Clear grid data when no class program is selected\r\n this.classProgramTerms.set([]);\r\n this.updateGridData();\r\n }\r\n }\r\n \r\n /**\r\n * Load class program branches\r\n */\r\n loadClassProgramBranches(classProgramId: string): void {\r\n this.classProgramBranchesLoading.set(true);\r\n const payload: AcaClassPrgBranchListPayload = new AcaClassPrgBranchListPayload({\r\n acabrn_class_program_id_acacpm: classProgramId,\r\n pagination: false\r\n });\r\n \r\n this.classProgramBranchService.getClassProgramBranchList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response: classPrgBranchControllerResponse) => {\r\n if (response?.success && response.data) {\r\n this.classProgramBranches.set(response.data as ClassProgramBranch[]);\r\n // Load program terms for dropdown when branches are loaded\r\n if (this.selectedProgramClassId()) {\r\n // Will be triggered when user selects a branch\r\n }\r\n } else {\r\n this.classProgramBranches.set([]);\r\n }\r\n this.classProgramBranchesLoading.set(false);\r\n },\r\n error: (error: any) => {\r\n console.error('❌ Error loading class program branches:', error);\r\n this.classProgramBranches.set([]);\r\n this.classProgramBranchesLoading.set(false);\r\n }\r\n });\r\n }\r\n \r\n /**\r\n * Handle branch selection change\r\n */\r\n onBranchChange(branchId: string | number | string[] | null): void {\r\n const branch = typeof branchId === 'string' ? branchId : (branchId ? String(branchId) : null);\r\n console.log('🔄 Branch changed:', branch);\r\n \r\n this.selectedBranchId.set(branch);\r\n this.acabrnId.set(branch);\r\n \r\n // Load program terms for dropdown when branch changes\r\n if (branch && this.selectedProgramClassId()) {\r\n this.loadClassProgramTermsForDropdown(this.selectedProgramClassId()!, branch);\r\n // Load terms for grid only when both class program and branch are selected\r\n this.loadClassProgramTerms();\r\n } else {\r\n this.classProgramTermsForDropdown.set([]);\r\n this.selectedTermId.set(null);\r\n // Clear grid data when branch is cleared\r\n this.classProgramTerms.set([]);\r\n this.updateGridData();\r\n }\r\n }\r\n \r\n /**\r\n * Load class program terms for dropdown (filtered by class program and branch)\r\n */\r\n loadClassProgramTermsForDropdown(classProgramId: string, branchId?: string): void {\r\n this.classProgramTermsLoadingForDropdown.set(true);\r\n const payload: MClassProgramTerm = new MClassProgramTerm({\r\n pageIndex: 0,\r\n pageSize: 1000,\r\n query: \"\",\r\n sort: {\r\n key: 'acapt_name',\r\n order: 'asc'\r\n },\r\n acapt_class_prg_branch_acabrn: branchId || \"\",\r\n });\r\n \r\n this.classProgramTermService.getClassProgramTermList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response) => {\r\n if (response?.success && response.data) {\r\n // Filter by class program ID if provided\r\n let terms = response.data as ClassProgramTerm[];\r\n if (classProgramId) {\r\n terms = terms.filter(term => \r\n term.acapt_class_program_id_acacpm?._id === classProgramId ||\r\n (typeof term.acapt_class_program_id_acacpm === 'string' && term.acapt_class_program_id_acacpm === classProgramId)\r\n );\r\n }\r\n this.classProgramTermsForDropdown.set(terms);\r\n } else {\r\n this.classProgramTermsForDropdown.set([]);\r\n }\r\n this.classProgramTermsLoadingForDropdown.set(false);\r\n },\r\n error: (error: any) => {\r\n console.error('❌ Error loading class program terms for dropdown:', error);\r\n this.classProgramTermsForDropdown.set([]);\r\n this.classProgramTermsLoadingForDropdown.set(false);\r\n }\r\n });\r\n }\r\n \r\n /**\r\n * Handle program term selection change\r\n */\r\n onTermChange(termId: string | number | string[] | null): void {\r\n const term = typeof termId === 'string' ? termId : (termId ? String(termId) : null);\r\n console.log('🔄 Program Term changed:', term);\r\n \r\n this.selectedTermId.set(term);\r\n // Filter the main list by selected term if needed\r\n // For now, we'll just store the selection\r\n }\r\n \r\n /**\r\n * Handle class program master search\r\n */\r\n onClassProgramMasterSearch(event: any): void {\r\n // Trigger loading if needed\r\n if (event && event.query) {\r\n // Could implement search functionality here if needed\r\n }\r\n }\r\n\r\n /**\r\n * Check route parameters for acabrn_id and acacpm_id\r\n */\r\n private checkRouteParams(): void {\r\n this.route.params.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(params => {\r\n const queryParams = params['query'];\r\n console.log('🏢 Route params:', params, 'queryParams:', queryParams);\r\n\r\n if (queryParams) {\r\n // Query parameters passed (following page-controls pattern)\r\n const queryData = generateObjectFromString(queryParams);\r\n console.log('🏢 Class Program Term params from route:', queryData);\r\n \r\n if (queryData?.acabrn_id) {\r\n this.acabrnId.set(queryData.acabrn_id as string);\r\n console.log('🏢 Branch ID from route:', queryData.acabrn_id);\r\n }\r\n \r\n if (queryData?.acacpm_id) {\r\n this.acacpmId.set(queryData.acacpm_id as string);\r\n console.log('🏢 Class Program ID from route:', queryData.acacpm_id);\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Load class program terms data\r\n */\r\n private loadClassProgramTerms(): void {\r\n // Don't load if no class program is selected\r\n if (!this.selectedProgramClassId()) {\r\n this.classProgramTerms.set([]);\r\n this.loading.set(false);\r\n this.updateGridData();\r\n return;\r\n }\r\n \r\n // If branch dropdown is shown, require branch selection\r\n if (this.showBranchDropdown() && !this.selectedBranchId()) {\r\n this.classProgramTerms.set([]);\r\n this.loading.set(false);\r\n this.updateGridData();\r\n return;\r\n }\r\n \r\n this.loading.set(true);\r\n this.error.set(null);\r\n \r\n // Add filter parameters if available\r\n const acabrnId = this.acabrnId();\r\n const acacpmId = this.acacpmId();\r\n \r\n const payload: MClassProgramTerm = new MClassProgramTerm({\r\n pageIndex: 0,\r\n pageSize: 100,\r\n query: this.searchTerm() || \"\",\r\n sort: {\r\n key: 'acapt_name',\r\n order: 'asc'\r\n },\r\n acapt_class_prg_branch_acabrn: acabrnId || \"\",\r\n });\r\n\r\n this.classProgramTermService.getClassProgramTermList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response) => {\r\n if (response?.success && response.data) {\r\n console.log('📚 Class program terms loaded:', response.data);\r\n this.classProgramTerms.set(response.data);\r\n this.updateGridData();\r\n this.notificationService.success(`Loaded ${response.data.length} class program term(s) successfully.`);\r\n } else {\r\n console.warn('⚠️ No class program term data received');\r\n this.classProgramTerms.set([]);\r\n this.updateGridData();\r\n this.notificationService.warning('No class program terms found.');\r\n }\r\n this.loading.set(false);\r\n },\r\n error: (error) => {\r\n console.error('❌ Error loading class program terms:', error);\r\n this.error.set('Failed to load class program terms');\r\n this.loading.set(false);\r\n this.notificationService.error('Failed to load class program terms');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update grid data\r\n */\r\n private updateGridData(): void {\r\n this.gridConfig.update(config => ({\r\n ...config,\r\n data: this.filteredClassProgramTerms()\r\n }));\r\n }\r\n\r\n /**\r\n * Handle grid events\r\n */\r\n onGridEvent(event: GridEvent<ClassProgramTerm>): void {\r\n switch (event.type) {\r\n case 'pageChange':\r\n if (event.data && typeof event.data === 'object' && 'pageIndex' in event.data && 'pageSize' in event.data) {\r\n this.loadClassProgramTerms();\r\n }\r\n break;\r\n case 'search':\r\n this.searchTerm.set(event.data as string);\r\n this.updateGridData();\r\n break;\r\n case 'refresh':\r\n this.loadClassProgramTerms();\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Create new class program term\r\n */\r\n createClassProgramTerm(): void {\r\n this.router.navigate(['/control-panel/program-term-management/create']);\r\n }\r\n\r\n /**\r\n * View class program term details\r\n */\r\n viewClassProgramTerm(classProgramTerm: ClassProgramTerm): void {\r\n this.router.navigate(['/control-panel/class-program-term/view', classProgramTerm._id]);\r\n }\r\n\r\n /**\r\n * Edit class program term\r\n */\r\n editClassProgramTerm(classProgramTerm: ClassProgramTerm): void {\r\n this.router.navigate(['/control-panel/class-program-term/edit', classProgramTerm._id]);\r\n }\r\n\r\n /**\r\n * Delete class program term\r\n */\r\n deleteClassProgramTerm(classProgramTerm: ClassProgramTerm): void {\r\n this.confirmationService.confirmDelete(classProgramTerm.acapt_name).then((confirmed: boolean) => {\r\n if (confirmed) {\r\n this.loading.set(true);\r\n const payload: MClassProgramTermDeletePayload = {\r\n acapt_id: classProgramTerm._id!\r\n };\r\n\r\n this.classProgramTermService.deleteClassProgramTerm(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response) => {\r\n if (response?.success) {\r\n this.classProgramTerms.update(terms => \r\n terms.filter(cpt => cpt._id !== classProgramTerm._id)\r\n );\r\n this.updateGridData();\r\n this.notificationService.success('Class program term deleted successfully.');\r\n } else {\r\n this.notificationService.error('Failed to delete class program term.');\r\n }\r\n this.loading.set(false);\r\n },\r\n error: (error) => {\r\n console.error('❌ Error deleting class program term:', error);\r\n this.notificationService.error('Failed to delete class program term.');\r\n this.loading.set(false);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Toggle class program term status\r\n */\r\n toggleClassProgramTermStatus(classProgramTerm: ClassProgramTerm): void {\r\n this.loading.set(true);\r\n const payload: MClassProgramTermToggleStatusPayload = {\r\n acapt_id: classProgramTerm._id!\r\n };\r\n\r\n this.classProgramTermService.toggleClassProgramTermStatus(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (response) => {\r\n if (response?.success) {\r\n this.classProgramTerms.update(terms => \r\n terms.map(cpt => \r\n cpt._id === classProgramTerm._id \r\n ? { ...cpt, acapt_isactive: !cpt.acapt_isactive }\r\n : cpt\r\n )\r\n );\r\n this.updateGridData();\r\n this.notificationService.success(`Class program term ${classProgramTerm.acapt_isactive ? 'deactivated' : 'activated'} successfully.`);\r\n } else {\r\n this.notificationService.error('Failed to toggle class program term status.');\r\n }\r\n this.loading.set(false);\r\n },\r\n error: (error) => {\r\n console.error('❌ Error toggling class program term status:', error);\r\n this.notificationService.error('Failed to toggle class program term status.');\r\n this.loading.set(false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Refresh data\r\n */\r\n refreshData(): void {\r\n this.loadClassProgramTerms();\r\n }\r\n}\r\n","<!-- Class Program Term Management Container -->\r\n<cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"{ sypg_page_code: 'class_program_term' }\"\r\n [breadcrumb_data]=\"breadcrumbData()\">\r\n \r\n <!-- Action Buttons in Breadcrumb Area -->\r\n <div breadcrumb-actions>\r\n <button cideEleButton type=\"button\" variant=\"primary\" size=\"sm\" leftIcon=\"add\" (btnClick)=\"createClassProgramTerm()\">\r\n Create Class Program Term\r\n </button>\r\n </div>\r\n\r\n <div class=\"tw-flex tw-flex-col tw-w-full tw-h-full\">\r\n\r\n <!-- Filter Section -->\r\n <div class=\"tw-flex-shrink-0 tw-px-6 tw-py-3 tw-border-b tw-border-gray-200 tw-bg-gray-50\">\r\n <div class=\"tw-flex tw-items-center tw-gap-4\">\r\n <div class=\"tw-w-64\">\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-text-gray-700 tw-mb-2\">Class Program</label>\r\n <cide-ele-select\r\n [options]=\"classProgramMastersOptions()\"\r\n [ngModel]=\"selectedProgramClassId() || ''\"\r\n (ngModelChange)=\"onClassProgramChange($event)\"\r\n placeholder=\"Select Class Program\"\r\n valueKey=\"_id\"\r\n labelKey=\"acacpm_alise_title\"\r\n [loading]=\"classProgramMastersLoading()\"\r\n [searchable]=\"true\"\r\n (searchChange)=\"onClassProgramMasterSearch($event)\">\r\n </cide-ele-select>\r\n </div>\r\n \r\n @if (showBranchDropdown()) {\r\n <div class=\"tw-w-64\">\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-text-gray-700 tw-mb-2\">Specialization</label>\r\n <cide-ele-select\r\n [options]=\"classProgramBranches()\"\r\n [ngModel]=\"selectedBranchId() || ''\"\r\n (ngModelChange)=\"onBranchChange($event)\"\r\n placeholder=\"Select Specialization\"\r\n valueKey=\"_id\"\r\n labelKey=\"acabrn_name\"\r\n [loading]=\"classProgramBranchesLoading()\">\r\n </cide-ele-select>\r\n </div>\r\n }\r\n \r\n @if (selectedProgramClassId() && (!showBranchDropdown() || selectedBranchId())) {\r\n <div class=\"tw-w-64\">\r\n <label class=\"tw-block tw-text-sm tw-font-medium tw-text-gray-700 tw-mb-2\">Program Term</label>\r\n <cide-ele-select\r\n [options]=\"classProgramTermsOptions()\"\r\n [ngModel]=\"selectedTermId() || ''\"\r\n (ngModelChange)=\"onTermChange($event)\"\r\n placeholder=\"Select Program Term\"\r\n valueKey=\"_id\"\r\n labelKey=\"acapt_name\"\r\n [loading]=\"classProgramTermsLoadingForDropdown()\">\r\n </cide-ele-select>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n\r\n <!-- Data Grid Section -->\r\n <div class=\"tw-flex-1 tw-min-h-0 tw-p-0\">\r\n <cide-ele-data-grid\r\n [config]=\"gridConfig()\"\r\n [templateRenderers]=\"templateRenderers()\"\r\n (gridEvent)=\"onGridEvent($event)\">\r\n </cide-ele-data-grid>\r\n </div>\r\n</div>\r\n</cide-lyt-shared-wrapper>\r\n\r\n<!-- Template Renderers -->\r\n<ng-template #classProgramTermDetailsRendererTemplate let-value=\"value\" let-item=\"item\" let-column=\"column\">\r\n <div class=\"tw-flex tw-items-center tw-space-x-3\">\r\n <div class=\"tw-flex-shrink-0\">\r\n <div class=\"tw-w-10 tw-h-10 tw-bg-orange-100 tw-rounded-lg tw-flex tw-items-center tw-justify-center\">\r\n <cide-ele-icon class=\"tw-text-orange-600 tw-w-5 tw-h-5\">schedule</cide-ele-icon>\r\n </div>\r\n </div>\r\n <div class=\"tw-min-w-0 tw-flex-1\">\r\n <h6 class=\"tw-text-sm tw-font-semibold tw-text-gray-900 tw-truncate tw-m-0\">\r\n {{ item.acapt_name }}\r\n </h6>\r\n <p class=\"tw-text-xs tw-text-gray-500 tw-truncate tw-m-0\">\r\n {{ item.acapt_description }}\r\n </p>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #classProgramTermStatusRendererTemplate let-value=\"value\" let-item=\"item\" let-column=\"column\">\r\n <div class=\"tw-flex tw-items-center tw-space-x-2\">\r\n @if (item.acapt_iscurrent) {\r\n <span class=\"tw-inline-flex tw-items-center tw-px-2 tw-py-1 tw-rounded-full tw-text-xs tw-font-medium tw-bg-blue-100 tw-text-blue-800\">\r\n <cide-ele-icon class=\"tw-w-3 tw-h-3 tw-mr-1\">star</cide-ele-icon>\r\n Current\r\n </span>\r\n }\r\n @if (item.acapt_islocked) {\r\n <span class=\"tw-inline-flex tw-items-center tw-px-2 tw-py-1 tw-rounded-full tw-text-xs tw-font-medium tw-bg-yellow-100 tw-text-yellow-800\">\r\n <cide-ele-icon class=\"tw-w-3 tw-h-3 tw-mr-1\">lock</cide-ele-icon>\r\n Locked\r\n </span>\r\n }\r\n <span [ngClass]=\"{\r\n 'tw-bg-green-100 tw-text-green-800': item.acapt_isactive,\r\n 'tw-bg-red-100 tw-text-red-800': !item.acapt_isactive\r\n }\" class=\"tw-inline-flex tw-items-center tw-px-2 tw-py-1 tw-rounded-full tw-text-xs tw-font-medium\">\r\n <cide-ele-icon [ngClass]=\"{\r\n 'tw-text-green-600': item.acapt_isactive,\r\n 'tw-text-red-600': !item.acapt_isactive\r\n }\" class=\"tw-w-3 tw-h-3 tw-mr-1\">\r\n {{ item.acapt_isactive ? 'check_circle' : 'cancel' }}\r\n </cide-ele-icon>\r\n {{ item.acapt_isactive ? 'Active' : 'Inactive' }}\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #actionsDropdownRendererTemplate let-value=\"value\" let-item=\"item\" let-column=\"column\">\r\n <cide-ele-dropdown\r\n [items]=\"getActionDropdownItems(item)\"\r\n (itemClick)=\"onDropdownItemClick($event, item)\"\r\n [config]=\"{\r\n triggerIcon: 'more_vert',\r\n triggerSize: 'sm',\r\n usePortal: true\r\n }\"\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n icon=\"more_vert\">\r\n </cide-ele-dropdown>\r\n</ng-template>\r\n"],"names":["i2"],"mappings":"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"}
@@ -59,7 +59,7 @@ const academicsRoutes = [
59
59
  },
60
60
  {
61
61
  path: 'program-class-management',
62
- loadComponent: () => import('./cloud-ide-academics-program-class-list.component-jPpK9V-X.mjs').then(c => c.ProgramClassListComponent),
62
+ loadComponent: () => import('./cloud-ide-academics-program-class-list.component-Db_VXPLN.mjs').then(c => c.ProgramClassListComponent),
63
63
  title: 'Program Class Management',
64
64
  canActivate: [authGuard],
65
65
  data: {
@@ -69,7 +69,7 @@ const academicsRoutes = [
69
69
  },
70
70
  {
71
71
  path: 'program-class-management/create',
72
- loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Co60CYKC.mjs').then(c => c.ProgramClassCreateComponent),
72
+ loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Rhogi_gF.mjs').then(c => c.ProgramClassCreateComponent),
73
73
  title: 'Create Program Class',
74
74
  canActivate: [authGuard],
75
75
  data: {
@@ -79,7 +79,7 @@ const academicsRoutes = [
79
79
  },
80
80
  {
81
81
  path: 'program-class-management/edit/:query',
82
- loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Co60CYKC.mjs').then(c => c.ProgramClassCreateComponent),
82
+ loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Rhogi_gF.mjs').then(c => c.ProgramClassCreateComponent),
83
83
  title: 'Edit Program Class',
84
84
  canActivate: [authGuard],
85
85
  data: {
@@ -89,7 +89,7 @@ const academicsRoutes = [
89
89
  },
90
90
  {
91
91
  path: 'program-class-management/view/:query',
92
- loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Co60CYKC.mjs').then(c => c.ProgramClassCreateComponent),
92
+ loadComponent: () => import('./cloud-ide-academics-program-class-create.component-Rhogi_gF.mjs').then(c => c.ProgramClassCreateComponent),
93
93
  title: 'View Program Class',
94
94
  canActivate: [authGuard],
95
95
  data: {
@@ -99,7 +99,7 @@ const academicsRoutes = [
99
99
  },
100
100
  {
101
101
  path: 'program-term-management/create',
102
- loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-C5FnRTND.mjs').then(c => c.ClassProgramTermCreateComponent),
102
+ loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-DDM2oLT-.mjs').then(c => c.ClassProgramTermCreateComponent),
103
103
  title: 'Create Class Program Term',
104
104
  canActivate: [authGuard],
105
105
  data: {
@@ -109,7 +109,7 @@ const academicsRoutes = [
109
109
  },
110
110
  {
111
111
  path: 'program-term-management/edit/:query',
112
- loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-C5FnRTND.mjs').then(c => c.ClassProgramTermCreateComponent),
112
+ loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-DDM2oLT-.mjs').then(c => c.ClassProgramTermCreateComponent),
113
113
  title: 'Edit Class Program Term',
114
114
  canActivate: [authGuard],
115
115
  data: {
@@ -119,7 +119,7 @@ const academicsRoutes = [
119
119
  },
120
120
  {
121
121
  path: 'program-term-management/view/:query',
122
- loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-C5FnRTND.mjs').then(c => c.ClassProgramTermCreateComponent),
122
+ loadComponent: () => import('./cloud-ide-academics-class-program-term-create.component-DDM2oLT-.mjs').then(c => c.ClassProgramTermCreateComponent),
123
123
  title: 'View Class Program Term',
124
124
  canActivate: [authGuard],
125
125
  data: {
@@ -129,7 +129,7 @@ const academicsRoutes = [
129
129
  },
130
130
  {
131
131
  path: 'program-term-management',
132
- loadComponent: () => import('./cloud-ide-academics-class-program-term-list.component-BaFtTKcS.mjs').then(c => c.ClassProgramTermListComponent),
132
+ loadComponent: () => import('./cloud-ide-academics-class-program-term-list.component-DG2G880p.mjs').then(c => c.ClassProgramTermListComponent),
133
133
  title: 'Class Program Term Management',
134
134
  canActivate: [authGuard],
135
135
  data: {
@@ -139,7 +139,7 @@ const academicsRoutes = [
139
139
  },
140
140
  {
141
141
  path: 'program-term-management/:query',
142
- loadComponent: () => import('./cloud-ide-academics-class-program-term-list.component-BaFtTKcS.mjs').then(c => c.ClassProgramTermListComponent),
142
+ loadComponent: () => import('./cloud-ide-academics-class-program-term-list.component-DG2G880p.mjs').then(c => c.ClassProgramTermListComponent),
143
143
  title: 'Class Program Term Management',
144
144
  canActivate: [authGuard],
145
145
  data: {
@@ -154,7 +154,7 @@ const academicsRoutes = [
154
154
  canActivate: [authGuard],
155
155
  data: {
156
156
  reuseTab: true,
157
- sypg_page_code: "program_term_section_list"
157
+ sypg_page_code: "program_term_section"
158
158
  }
159
159
  },
160
160
  {
@@ -164,37 +164,37 @@ const academicsRoutes = [
164
164
  canActivate: [authGuard],
165
165
  data: {
166
166
  reuseTab: true,
167
- sypg_page_code: "program_term_section_list"
167
+ sypg_page_code: "program_term_section"
168
168
  }
169
169
  },
170
170
  {
171
171
  path: 'class-program-term/create',
172
- loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-Dx9JQOwW.mjs').then(c => c.ProgramTermSectionCreateComponent),
172
+ loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-BD5NgphA.mjs').then(c => c.ProgramTermSectionCreateComponent),
173
173
  title: 'Create Program Term Section',
174
174
  canActivate: [authGuard],
175
175
  data: {
176
176
  reuseTab: true,
177
- sypg_page_code: "program_term_section_list"
177
+ sypg_page_code: "program_term_section"
178
178
  }
179
179
  },
180
180
  {
181
181
  path: 'class-program-term/edit/:query',
182
- loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-Dx9JQOwW.mjs').then(c => c.ProgramTermSectionCreateComponent),
182
+ loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-BD5NgphA.mjs').then(c => c.ProgramTermSectionCreateComponent),
183
183
  title: 'Edit Program Term Section',
184
184
  canActivate: [authGuard],
185
185
  data: {
186
186
  reuseTab: true,
187
- sypg_page_code: "program_term_section_list"
187
+ sypg_page_code: "program_term_section"
188
188
  }
189
189
  },
190
190
  {
191
191
  path: 'class-program-term/view/:query',
192
- loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-Dx9JQOwW.mjs').then(c => c.ProgramTermSectionCreateComponent),
192
+ loadComponent: () => import('./cloud-ide-academics-program-term-section-create.component-BD5NgphA.mjs').then(c => c.ProgramTermSectionCreateComponent),
193
193
  title: 'View Program Term Section',
194
194
  canActivate: [authGuard],
195
195
  data: {
196
196
  reuseTab: true,
197
- sypg_page_code: "program_term_section_list"
197
+ sypg_page_code: "program_term_section"
198
198
  }
199
199
  },
200
200
  // Class Program Branch Management Routes
@@ -3099,4 +3099,4 @@ var classProgramBranchForm_component = /*#__PURE__*/Object.freeze({
3099
3099
  */
3100
3100
 
3101
3101
  export { AcademicYearCreateComponent as A, CideLytProgramClassService as C, CideLytAcademicYearService as a, CideLytClassProgramBranchService as b, academicsRoutes as c, AcademicYearListComponent as d, CideLytAcademicYearMappingService as e, CideLytClassProgramBranchListComponent as f, CideLytClassProgramBranchFormComponent as g };
3102
- //# sourceMappingURL=cloud-ide-academics-cloud-ide-academics-DxRzuyxa.mjs.map
3102
+ //# sourceMappingURL=cloud-ide-academics-cloud-ide-academics-BTOmrraW.mjs.map