cloud-ide-academics 0.0.28 → 0.0.30

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 (26) hide show
  1. package/fesm2022/cloud-ide-academics-class-program-term-create.component-B-7JRpVE.mjs +1196 -0
  2. package/fesm2022/cloud-ide-academics-class-program-term-create.component-B-7JRpVE.mjs.map +1 -0
  3. package/fesm2022/{cloud-ide-academics-class-program-term-list.component-CP2vlRBP.mjs → cloud-ide-academics-class-program-term-list.component-DObKkh-y.mjs} +186 -48
  4. package/fesm2022/cloud-ide-academics-class-program-term-list.component-DObKkh-y.mjs.map +1 -0
  5. package/fesm2022/cloud-ide-academics-cloud-ide-academics-FwQEJSnJ.mjs +6127 -0
  6. package/fesm2022/cloud-ide-academics-cloud-ide-academics-FwQEJSnJ.mjs.map +1 -0
  7. package/fesm2022/{cloud-ide-academics-program-class-create.component-KijRP6Nl.mjs → cloud-ide-academics-program-class-create.component-x0rh1ESo.mjs} +45 -23
  8. package/fesm2022/cloud-ide-academics-program-class-create.component-x0rh1ESo.mjs.map +1 -0
  9. package/fesm2022/{cloud-ide-academics-program-class-list.component-B5cy2Gpk.mjs → cloud-ide-academics-program-class-list.component-CkzH8u8u.mjs} +10 -9
  10. package/fesm2022/cloud-ide-academics-program-class-list.component-CkzH8u8u.mjs.map +1 -0
  11. package/fesm2022/cloud-ide-academics.mjs +1 -1
  12. package/index.d.ts +500 -18
  13. package/package.json +1 -1
  14. package/fesm2022/cloud-ide-academics-class-program-term-create.component-BRbHViJN.mjs +0 -659
  15. package/fesm2022/cloud-ide-academics-class-program-term-create.component-BRbHViJN.mjs.map +0 -1
  16. package/fesm2022/cloud-ide-academics-class-program-term-list.component-CP2vlRBP.mjs.map +0 -1
  17. package/fesm2022/cloud-ide-academics-class-program-term.service-BW4PJQEM.mjs +0 -111
  18. package/fesm2022/cloud-ide-academics-class-program-term.service-BW4PJQEM.mjs.map +0 -1
  19. package/fesm2022/cloud-ide-academics-cloud-ide-academics-g9qZGJtG.mjs +0 -3102
  20. package/fesm2022/cloud-ide-academics-cloud-ide-academics-g9qZGJtG.mjs.map +0 -1
  21. package/fesm2022/cloud-ide-academics-program-class-create.component-KijRP6Nl.mjs.map +0 -1
  22. package/fesm2022/cloud-ide-academics-program-class-list.component-B5cy2Gpk.mjs.map +0 -1
  23. package/fesm2022/cloud-ide-academics-program-term-section-create.component-DHrTb-XI.mjs +0 -248
  24. package/fesm2022/cloud-ide-academics-program-term-section-create.component-DHrTb-XI.mjs.map +0 -1
  25. package/fesm2022/cloud-ide-academics-program-term-section-list.component-ktIAxvxR.mjs +0 -495
  26. package/fesm2022/cloud-ide-academics-program-term-section-list.component-ktIAxvxR.mjs.map +0 -1
package/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Route } from '@angular/router';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { OnInit, OnDestroy, TemplateRef } from '@angular/core';
4
- import { FormGroup, FormArray } from '@angular/forms';
5
- import { TabItem, TemplateContext, GridConfiguration, GridEvent, DropdownConfig, DropdownItem } from 'cloud-ide-element';
4
+ import { FormGroup, FormArray, FormControl } from '@angular/forms';
5
+ import { TabItem, TemplateContext, GridConfiguration, GridEvent, DropdownConfig, DropdownItem, SelectOption as SelectOption$1 } from 'cloud-ide-element';
6
6
  import { Observable } from 'rxjs';
7
- import { MAcademicYear, academicYearControllerResponse, MAcademicYearGetByIdPayload, academicYearByIdControllerResponse, MAcademicYearInsertUpdatePayload, academicYearInsertUpdateControllerResponse, MAcademicYearDeletePayload, academicYearDeleteControllerResponse, MAcademicYearToggleStatusPayload, academicYearToggleStatusControllerResponse, academicYearMappingInsertUpdateControllerResponse, MAcademicYearMapping, academicYearMappingControllerResponse, MAcademicYearMappingGetByIdPayload, academicYearMappingByIdControllerResponse, MAcademicYearMappingInsertUpdatePayload, MAcademicYearMappingDeletePayload, academicYearMappingDeleteControllerResponse, MAcademicYearMappingToggleStatusPayload, academicYearMappingToggleStatusControllerResponse, AcaClassPrgBranchResponse, ICoreSygms, AcaClassPrgBranchListPayload, classPrgBranchControllerResponse, AcaClassPrgBranchGetByIdPayload, classPrgBranchByIdControllerResponse, AcaClassPrgBranchInsertUpdatePayload, classPrgBranchInsertUpdateControllerResponse, AcaClassPrgBranchDeletePayload, classPrgBranchDeleteControllerResponse, AcaClassPrgBranchToggleStatusPayload, classPrgBranchToggleStatusControllerResponse, AcaClassPrgBranchToggleLockPayload, classPrgBranchToggleLockControllerResponse } from 'cloud-ide-lms-model';
7
+ import { MAcademicYear, academicYearControllerResponse, MAcademicYearGetByIdPayload, academicYearByIdControllerResponse, MAcademicYearInsertUpdatePayload, academicYearInsertUpdateControllerResponse, MAcademicYearDeletePayload, academicYearDeleteControllerResponse, MAcademicYearToggleStatusPayload, academicYearToggleStatusControllerResponse, academicYearMappingInsertUpdateControllerResponse, MAcademicYearMapping, academicYearMappingControllerResponse, MAcademicYearMappingGetByIdPayload, academicYearMappingByIdControllerResponse, MAcademicYearMappingInsertUpdatePayload, MAcademicYearMappingDeletePayload, academicYearMappingDeleteControllerResponse, MAcademicYearMappingToggleStatusPayload, academicYearMappingToggleStatusControllerResponse, AcaClassPrgBranchResponse, ICoreSygms, AcaClassPrgBranchListPayload, classPrgBranchControllerResponse, AcaClassPrgBranchGetByIdPayload, classPrgBranchByIdControllerResponse, AcaClassPrgBranchInsertUpdatePayload, classPrgBranchInsertUpdateControllerResponse, AcaClassPrgBranchDeletePayload, classPrgBranchDeleteControllerResponse, AcaClassPrgBranchToggleStatusPayload, classPrgBranchToggleStatusControllerResponse, AcaClassPrgBranchToggleLockPayload, classPrgBranchToggleLockControllerResponse, AcaPrgTrmSectionResponse, MPrgTrmSection, prgTrmSectionControllerResponse, MPrgTrmSectionGetByIdPayload, prgTrmSectionByIdControllerResponse, MPrgTrmSectionInsertUpdatePayload, prgTrmSectionInsertUpdateControllerResponse, MPrgTrmSectionDeletePayload, prgTrmSectionDeleteControllerResponse, MPrgTrmSectionToggleStatusPayload, prgTrmSectionToggleStatusControllerResponse, MPrgTrmSectionToggleLockPayload, prgTrmSectionToggleLockControllerResponse, AcaClassProgramMasterResponse, selectSearchType } from 'cloud-ide-lms-model';
8
8
 
9
9
  declare const academicsRoutes: Route[];
10
10
 
@@ -373,7 +373,7 @@ declare class CideLytAcademicYearMappingService {
373
373
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytAcademicYearMappingService>;
374
374
  }
375
375
 
376
- interface ClassProgramBranch {
376
+ interface ClassProgramBranch$2 {
377
377
  _id?: string;
378
378
  acabrn_class_program_id_acacpm?: any;
379
379
  acabrn_name?: string;
@@ -382,12 +382,22 @@ interface ClassProgramBranch {
382
382
  acabrn_isactive?: boolean;
383
383
  acabrn_islocked?: boolean;
384
384
  }
385
- interface ProgramClass$1 {
385
+ interface ClassProgramConfiguration$1 {
386
+ branchType?: boolean;
387
+ semesterType?: boolean;
388
+ }
389
+ interface ProgramClass$3 {
386
390
  _id?: string;
387
391
  acacpm_name?: string;
388
392
  acacpm_code?: string;
389
393
  acacpm_alise_title?: string;
390
394
  acacpm_description?: string;
395
+ acacpm_class_program_id_sygms?: {
396
+ _id?: string;
397
+ sygms_code?: string;
398
+ sygms_title?: string;
399
+ sygms_configuration?: ClassProgramConfiguration$1 | string;
400
+ } | string;
391
401
  }
392
402
  declare class CideLytClassProgramBranchListComponent implements OnInit {
393
403
  private destroyRef;
@@ -400,10 +410,10 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
400
410
  private programClassService;
401
411
  loading: _angular_core.WritableSignal<boolean>;
402
412
  error: _angular_core.WritableSignal<string | null>;
403
- branches: _angular_core.WritableSignal<ClassProgramBranch[]>;
413
+ branches: _angular_core.WritableSignal<ClassProgramBranch$2[]>;
404
414
  totalCount: _angular_core.WritableSignal<number>;
405
415
  programId: _angular_core.WritableSignal<string | null>;
406
- programClasses: _angular_core.WritableSignal<ProgramClass$1[]>;
416
+ programClasses: _angular_core.WritableSignal<ProgramClass$3[]>;
407
417
  selectedProgramClassId: _angular_core.WritableSignal<string | null>;
408
418
  breadcrumbData: _angular_core.WritableSignal<{
409
419
  id: string;
@@ -414,7 +424,7 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
414
424
  dragHandleRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
415
425
  classProgramRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
416
426
  actionsDropdownRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>> | undefined>;
417
- gridConfig: _angular_core.WritableSignal<GridConfiguration<ClassProgramBranch>>;
427
+ gridConfig: _angular_core.WritableSignal<GridConfiguration<ClassProgramBranch$2>>;
418
428
  templateRenderers: _angular_core.Signal<Record<string, TemplateRef<TemplateContext<Record<string, unknown>>>>>;
419
429
  ngOnInit(): void;
420
430
  /**
@@ -423,6 +433,7 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
423
433
  private initializeBreadcrumbData;
424
434
  /**
425
435
  * Load program classes for dropdown
436
+ * Only loads programs that have branchType: true in their configuration
426
437
  */
427
438
  private loadProgramClasses;
428
439
  /**
@@ -441,6 +452,10 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
441
452
  * Load branches from API
442
453
  */
443
454
  private loadBranches;
455
+ /**
456
+ * Normalize branches to ensure class program object structure is preserved for grouping
457
+ */
458
+ private normalizeBranchesForGrouping;
444
459
  /**
445
460
  * Update grid data
446
461
  */
@@ -448,7 +463,7 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
448
463
  /**
449
464
  * Handle grid events
450
465
  */
451
- onGridEvent(event: GridEvent<ClassProgramBranch>): void;
466
+ onGridEvent(event: GridEvent<ClassProgramBranch$2>): void;
452
467
  /**
453
468
  * Handle refresh
454
469
  */
@@ -476,15 +491,15 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
476
491
  /**
477
492
  * Navigate to view branch
478
493
  */
479
- onViewBranch(branch: ClassProgramBranch): void;
494
+ onViewBranch(branch: ClassProgramBranch$2): void;
480
495
  /**
481
496
  * Navigate to edit branch
482
497
  */
483
- onEditBranch(branch: ClassProgramBranch): void;
498
+ onEditBranch(branch: ClassProgramBranch$2): void;
484
499
  /**
485
500
  * Navigate to manage term for branch
486
501
  */
487
- onManageTerm(branch: ClassProgramBranch): void;
502
+ onManageTerm(branch: ClassProgramBranch$2): void;
488
503
  /**
489
504
  * Get dropdown items for branch actions
490
505
  */
@@ -492,7 +507,7 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
492
507
  /**
493
508
  * Handle dropdown item click
494
509
  */
495
- onDropdownItemClick(item: DropdownItem, branch: ClassProgramBranch): void;
510
+ onDropdownItemClick(item: DropdownItem, branch: ClassProgramBranch$2): void;
496
511
  /**
497
512
  * Toggle branch status
498
513
  */
@@ -509,11 +524,22 @@ declare class CideLytClassProgramBranchListComponent implements OnInit {
509
524
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<CideLytClassProgramBranchListComponent, "cide-academics-class-program-branch-list", never, {}, {}, never, never, true, never>;
510
525
  }
511
526
 
512
- interface ProgramClass {
527
+ interface ClassProgramConfiguration {
528
+ branchType?: boolean;
529
+ semesterType?: boolean;
530
+ }
531
+ interface ProgramClass$2 {
513
532
  _id?: string;
514
533
  acacpm_name?: string;
515
534
  acacpm_code?: string;
516
535
  acacpm_description?: string;
536
+ acacpm_alise_title?: string;
537
+ acacpm_class_program_id_sygms?: {
538
+ _id?: string;
539
+ sygms_code?: string;
540
+ sygms_title?: string;
541
+ sygms_configuration?: ClassProgramConfiguration | string;
542
+ } | string;
517
543
  }
518
544
  interface BranchMaster extends ICoreSygms {
519
545
  value?: string;
@@ -537,7 +563,7 @@ declare class CideLytClassProgramBranchFormComponent implements OnInit, OnDestro
537
563
  isEditMode: _angular_core.WritableSignal<boolean>;
538
564
  isViewMode: _angular_core.WritableSignal<boolean>;
539
565
  branchId: _angular_core.WritableSignal<string | null>;
540
- programClasses: _angular_core.WritableSignal<ProgramClass[]>;
566
+ programClasses: _angular_core.WritableSignal<ProgramClass$2[]>;
541
567
  branchMasters: _angular_core.WritableSignal<BranchMaster[]>;
542
568
  breadcrumbData: _angular_core.WritableSignal<{
543
569
  id: string;
@@ -555,7 +581,7 @@ declare class CideLytClassProgramBranchFormComponent implements OnInit, OnDestro
555
581
  private setupFormListeners;
556
582
  /**
557
583
  * Handle Program Class selection change
558
- * This can be used to filter or update dependent lists
584
+ * This will load standard branch names based on the program's general master code
559
585
  */
560
586
  private onProgramClassChange;
561
587
  ngOnDestroy(): void;
@@ -573,13 +599,23 @@ declare class CideLytClassProgramBranchFormComponent implements OnInit, OnDestro
573
599
  private loadMasterData;
574
600
  /**
575
601
  * Load program classes
602
+ * Only loads programs that have branchType: true in their configuration
603
+ * (except in edit/view mode where we need to show the current program even if it doesn't have branchType)
576
604
  */
577
605
  private loadProgramClasses;
578
606
  /**
579
607
  * Load branch masters from SYGMS (General Master)
580
- * Filter by type code 'BRANCH' or similar
608
+ * This method is called initially without program filter
581
609
  */
582
610
  private loadBranchMasters;
611
+ /**
612
+ * Load branch masters filtered by program code
613
+ * The API will:
614
+ * 1. Find general master with type "class_program_type" and code matching programCode
615
+ * 2. Use that master's ID as sygms_id_sygms to get child branches (standard branch names)
616
+ * All done in a single API call
617
+ */
618
+ private loadBranchMastersByProgramCode;
583
619
  /**
584
620
  * Handle SYGMS selection change - auto-populate name and code
585
621
  */
@@ -678,4 +714,450 @@ declare class CideLytClassProgramBranchService {
678
714
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytClassProgramBranchService>;
679
715
  }
680
716
 
681
- export { AcademicYearCreateComponent, AcademicYearListComponent, CideLytAcademicYearMappingService, CideLytAcademicYearService, CideLytClassProgramBranchFormComponent, CideLytClassProgramBranchListComponent, CideLytClassProgramBranchService, academicsRoutes };
717
+ interface ProgramClass$1 {
718
+ _id?: string;
719
+ acacpm_alise_title?: string;
720
+ acacpm_class_program_id_sygms?: {
721
+ sygms_configuration?: {
722
+ branchType?: boolean;
723
+ semesterType?: boolean;
724
+ termType?: boolean;
725
+ termLevelUpTo?: number;
726
+ termProgramLevelOneConnected?: boolean;
727
+ };
728
+ };
729
+ }
730
+ interface ClassProgramTerm$1 {
731
+ _id?: string;
732
+ acapt_name?: string;
733
+ acapt_code?: string;
734
+ }
735
+ interface ClassProgramBranch$1 {
736
+ _id?: string;
737
+ acabrn_name?: string;
738
+ acabrn_code?: string;
739
+ }
740
+ declare class ProgramTermSectionCreateComponent implements OnInit, OnDestroy {
741
+ private destroyRef;
742
+ private fb;
743
+ private router;
744
+ private route;
745
+ private appState;
746
+ private notificationService;
747
+ private confirmationService;
748
+ private classProgramMasterService;
749
+ private classProgramBranchService;
750
+ private classProgramTermService;
751
+ private programTermSectionService;
752
+ programTermSectionForm: FormGroup;
753
+ activeTab: _angular_core.WritableSignal<string>;
754
+ loading: _angular_core.WritableSignal<boolean>;
755
+ error: _angular_core.WritableSignal<string | null>;
756
+ programTermSectionId: _angular_core.WritableSignal<string>;
757
+ isEditMode: _angular_core.WritableSignal<boolean>;
758
+ isViewMode: _angular_core.WritableSignal<boolean>;
759
+ programClasses: _angular_core.WritableSignal<ProgramClass$1[]>;
760
+ selectedProgramClass: _angular_core.WritableSignal<ProgramClass$1 | null>;
761
+ classProgramBranches: _angular_core.WritableSignal<ClassProgramBranch$1[]>;
762
+ classProgramTerms: _angular_core.WritableSignal<ClassProgramTerm$1[]>;
763
+ programClassOptions: _angular_core.WritableSignal<SelectOption$1[]>;
764
+ classProgramBranchOptions: _angular_core.WritableSignal<SelectOption$1[]>;
765
+ classProgramTermOptions: _angular_core.WritableSignal<(SelectOption$1 & {
766
+ _id: string;
767
+ acapt_name: string;
768
+ acapt_parent_class_prog_term_acapt?: string;
769
+ })[]>;
770
+ programClassLoading: _angular_core.WritableSignal<boolean>;
771
+ classProgramBranchLoading: _angular_core.WritableSignal<boolean>;
772
+ classProgramTermLoading: _angular_core.WritableSignal<boolean>;
773
+ showBranchDropdown: _angular_core.Signal<boolean | undefined>;
774
+ showTermDropdown: _angular_core.Signal<boolean>;
775
+ acacpmId: _angular_core.WritableSignal<string | null>;
776
+ acabrnId: _angular_core.WritableSignal<string | null>;
777
+ acaptParentId: _angular_core.WritableSignal<string | null>;
778
+ hasParentTermInEditMode: _angular_core.WritableSignal<boolean>;
779
+ breadcrumbData: _angular_core.WritableSignal<{
780
+ id: string;
781
+ label: string;
782
+ icon?: string;
783
+ url?: string;
784
+ }[]>;
785
+ constructor();
786
+ ngOnInit(): void;
787
+ /**
788
+ * Update breadcrumb data based on mode
789
+ */
790
+ private updateBreadcrumbData;
791
+ /**
792
+ * Initialize component
793
+ */
794
+ private initializeComponent;
795
+ /**
796
+ * Setup listener for program class selection changes
797
+ */
798
+ private setupProgramClassChangeListener;
799
+ /**
800
+ * Load term details from API and set class program
801
+ */
802
+ private loadTermDetailsAndSetClassProgram;
803
+ /**
804
+ * Check route parameters for pre-selecting fields
805
+ */
806
+ private checkRouteParams;
807
+ /**
808
+ * Load program term section for viewing
809
+ */
810
+ private loadProgramTermSectionForView;
811
+ /**
812
+ * Load program term section for editing
813
+ */
814
+ private loadProgramTermSectionForEdit;
815
+ /**
816
+ * Load dropdown options
817
+ */
818
+ private loadDropdownOptions;
819
+ /**
820
+ * Load program classes from service
821
+ */
822
+ private loadProgramClasses;
823
+ /**
824
+ * Load branches for a specific program class
825
+ */
826
+ private loadBranchesForProgramClass;
827
+ /**
828
+ * Auto-select term for program when termType=true, termProgramLevelOneConnected=true, and termLevelUpTo <= 1
829
+ */
830
+ private autoSelectTermForProgram;
831
+ /**
832
+ * Load terms for a specific program class and branch
833
+ */
834
+ private loadTermsForProgramClassAndBranch;
835
+ /**
836
+ * Tab configuration
837
+ */
838
+ programTermSectionTabs(): {
839
+ id: string;
840
+ label: string;
841
+ icon: string;
842
+ }[];
843
+ onTabChange(tab: TabItem): void;
844
+ onSubmit(): void;
845
+ /**
846
+ * Mark all form controls as touched to trigger validation display
847
+ */
848
+ private markFormGroupTouched;
849
+ resetForm(): void;
850
+ /**
851
+ * Go back to program term section list
852
+ */
853
+ goBackToProgramTermSectionList(): void;
854
+ /**
855
+ * Cancel form and navigate back to listing page
856
+ */
857
+ cancelForm(): void;
858
+ /**
859
+ * Get page title based on mode
860
+ */
861
+ getPageTitle(): string;
862
+ /**
863
+ * Cleanup when component is destroyed
864
+ */
865
+ ngOnDestroy(): void;
866
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgramTermSectionCreateComponent, never>;
867
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgramTermSectionCreateComponent, "cide-academics-program-term-section-create", never, {}, {}, never, never, true, never>;
868
+ }
869
+
870
+ type ProgramTermSection = AcaPrgTrmSectionResponse;
871
+ interface ProgramClass {
872
+ _id?: string;
873
+ acacpm_code?: string;
874
+ acacpm_alise_title?: string;
875
+ acacpm_name?: string;
876
+ acacpm_description?: string;
877
+ acacpm_class_program_id_sygms?: any;
878
+ }
879
+ interface ClassProgramBranch {
880
+ _id?: string;
881
+ acabrn_name?: string;
882
+ acabrn_code?: string;
883
+ }
884
+ interface ClassProgramTerm {
885
+ _id?: string;
886
+ acapt_code?: string;
887
+ acapt_name?: string;
888
+ acapt_class_program_id_acacpm?: string | {
889
+ _id?: string;
890
+ };
891
+ acapt_class_program_branch_id_acabrn?: string | {
892
+ _id?: string;
893
+ };
894
+ acapt_parent_class_prog_term_acapt?: string | {
895
+ _id?: string;
896
+ };
897
+ children?: ClassProgramTerm[];
898
+ level?: number;
899
+ isExpanded?: boolean;
900
+ hasChildren?: boolean;
901
+ }
902
+ declare class ProgramTermSectionListComponent implements OnInit {
903
+ private destroyRef;
904
+ private router;
905
+ private route;
906
+ private appState;
907
+ private notificationService;
908
+ private confirmationService;
909
+ private programTermSectionService;
910
+ private classProgramMasterService;
911
+ private classProgramBranchService;
912
+ private classProgramTermService;
913
+ programTermSectionDetailsRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
914
+ programTermSectionStatusRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
915
+ actionsDropdownRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
916
+ programClassRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
917
+ termSpecializationRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
918
+ classProgramTermRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
919
+ parentClassProgramTermRendererTemplate: _angular_core.Signal<TemplateRef<TemplateContext<Record<string, unknown>>>>;
920
+ templateRenderers: _angular_core.Signal<Record<string, TemplateRef<TemplateContext<Record<string, unknown>>>>>;
921
+ Math: Math;
922
+ programTermSections: _angular_core.WritableSignal<AcaPrgTrmSectionResponse[]>;
923
+ loading: _angular_core.WritableSignal<boolean>;
924
+ error: _angular_core.WritableSignal<string | null>;
925
+ selectedItems: _angular_core.WritableSignal<string[]>;
926
+ searchTerm: _angular_core.WritableSignal<string>;
927
+ classProgramMasters: _angular_core.WritableSignal<ProgramClass[]>;
928
+ classProgramMastersLoading: _angular_core.WritableSignal<boolean>;
929
+ selectedClassProgram: _angular_core.WritableSignal<ProgramClass | null>;
930
+ classProgramBranches: _angular_core.WritableSignal<ClassProgramBranch[]>;
931
+ classProgramBranchesLoading: _angular_core.WritableSignal<boolean>;
932
+ selectedProgramClassId: _angular_core.WritableSignal<string | null>;
933
+ selectedBranchId: _angular_core.WritableSignal<string | null>;
934
+ classProgramTerms: _angular_core.WritableSignal<ClassProgramTerm[]>;
935
+ classProgramTermsLoading: _angular_core.WritableSignal<boolean>;
936
+ selectedTermId: _angular_core.WritableSignal<string | null>;
937
+ breadcrumbData: _angular_core.WritableSignal<{
938
+ id: string;
939
+ label: string;
940
+ icon?: string;
941
+ url?: string;
942
+ }[]>;
943
+ classProgramMastersOptions: _angular_core.Signal<{
944
+ displayLabel: string;
945
+ _id?: string;
946
+ acacpm_code?: string;
947
+ acacpm_alise_title?: string;
948
+ acacpm_name?: string;
949
+ acacpm_description?: string;
950
+ acacpm_class_program_id_sygms?: any;
951
+ }[]>;
952
+ classProgramBranchesOptions: _angular_core.Signal<ClassProgramBranch[]>;
953
+ classProgramTermOptions: _angular_core.Signal<{
954
+ value: string;
955
+ label: string;
956
+ _id: string;
957
+ acapt_name: string;
958
+ acapt_parent_class_prog_term_acapt: string;
959
+ }[]>;
960
+ showBranchDropdown: _angular_core.Signal<any>;
961
+ showTermDropdown: _angular_core.Signal<boolean>;
962
+ filteredProgramTermSections: _angular_core.Signal<AcaPrgTrmSectionResponse[]>;
963
+ gridConfig: _angular_core.WritableSignal<GridConfiguration<AcaPrgTrmSectionResponse>>;
964
+ /**
965
+ * Get action dropdown items
966
+ */
967
+ getActionDropdownItems(programTermSection: ProgramTermSection): DropdownItem[];
968
+ /**
969
+ * Handle dropdown item click
970
+ */
971
+ onDropdownItemClick(item: DropdownItem, programTermSection: ProgramTermSection): void;
972
+ ngOnInit(): void;
973
+ /**
974
+ * Initialize breadcrumb data for list view
975
+ */
976
+ private initializeBreadcrumbData;
977
+ /**
978
+ * Load program term sections data
979
+ */
980
+ private loadProgramTermSections;
981
+ /**
982
+ * Normalize sections to ensure class program and term object structures are preserved for grouping
983
+ */
984
+ private normalizeSectionsForGrouping;
985
+ /**
986
+ * Update grid data
987
+ */
988
+ private updateGridData;
989
+ /**
990
+ * Handle grid events
991
+ */
992
+ onGridEvent(event: GridEvent<ProgramTermSection>): void;
993
+ /**
994
+ * Create new program term section
995
+ */
996
+ createProgramTermSection(): void;
997
+ /**
998
+ * View program term section details
999
+ */
1000
+ viewProgramTermSection(programTermSection: ProgramTermSection): void;
1001
+ /**
1002
+ * Edit program term section
1003
+ */
1004
+ editProgramTermSection(programTermSection: ProgramTermSection): void;
1005
+ /**
1006
+ * Delete program term section
1007
+ */
1008
+ deleteProgramTermSection(programTermSection: ProgramTermSection): void;
1009
+ /**
1010
+ * Toggle program term section status
1011
+ */
1012
+ toggleProgramTermSectionStatus(programTermSection: ProgramTermSection): void;
1013
+ /**
1014
+ * Refresh data
1015
+ */
1016
+ refreshData(): void;
1017
+ /**
1018
+ * Load class program masters
1019
+ */
1020
+ private loadClassProgramMasters;
1021
+ /**
1022
+ * Handle class program selection change
1023
+ */
1024
+ onClassProgramChange(programClassId: string | number | string[] | null): void;
1025
+ /**
1026
+ * Load class program branches
1027
+ */
1028
+ private loadClassProgramBranches;
1029
+ /**
1030
+ * Handle branch selection change
1031
+ */
1032
+ onBranchChange(branchId: string | number | string[] | null): void;
1033
+ /**
1034
+ * Auto-select term for program when termType=true, termProgramLevelOneConnected=true, and termLevelUpTo <= 1
1035
+ */
1036
+ private autoSelectTermForProgram;
1037
+ /**
1038
+ * Load class program terms (simple list for dropdown)
1039
+ */
1040
+ private loadClassProgramTerms;
1041
+ /**
1042
+ * Handle program term selection change
1043
+ */
1044
+ onTermChange(termId: string | number | string[] | null): void;
1045
+ /**
1046
+ * Handle class program master search
1047
+ */
1048
+ onClassProgramMasterSearch(event: any): void;
1049
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgramTermSectionListComponent, never>;
1050
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgramTermSectionListComponent, "cide-academics-program-term-section-list", never, {}, {}, never, never, true, never>;
1051
+ }
1052
+
1053
+ declare class CideLytProgramTermSectionService {
1054
+ private http;
1055
+ /**
1056
+ * Get list of program term sections
1057
+ * @param payload - Query parameters for filtering/pagination
1058
+ * @returns Observable of program term section list response
1059
+ */
1060
+ getProgramTermSectionList(payload: MPrgTrmSection): Observable<prgTrmSectionControllerResponse>;
1061
+ /**
1062
+ * Get program term section by ID
1063
+ * @param payload - Program term section ID payload
1064
+ * @returns Observable of program term section data
1065
+ */
1066
+ getProgramTermSectionById(payload: MPrgTrmSectionGetByIdPayload): Observable<prgTrmSectionByIdControllerResponse>;
1067
+ /**
1068
+ * Create or update program term section
1069
+ * @param data - Program term section data to save
1070
+ * @returns Observable of the save response
1071
+ */
1072
+ saveProgramTermSection(data: MPrgTrmSectionInsertUpdatePayload): Observable<prgTrmSectionInsertUpdateControllerResponse>;
1073
+ /**
1074
+ * Delete program term section
1075
+ * @param payload - Program term section delete payload
1076
+ * @returns Observable of the delete response
1077
+ */
1078
+ deleteProgramTermSection(payload: MPrgTrmSectionDeletePayload): Observable<prgTrmSectionDeleteControllerResponse>;
1079
+ /**
1080
+ * Toggle program term section status (active/inactive)
1081
+ * @param payload - Program term section toggle status payload
1082
+ * @returns Observable of the toggle status response
1083
+ */
1084
+ toggleProgramTermSectionStatus(payload: MPrgTrmSectionToggleStatusPayload): Observable<prgTrmSectionToggleStatusControllerResponse>;
1085
+ /**
1086
+ * Toggle program term section lock status
1087
+ * @param payload - Program term section toggle lock payload
1088
+ * @returns Observable of the toggle lock response
1089
+ */
1090
+ toggleProgramTermSectionLock(payload: MPrgTrmSectionToggleLockPayload): Observable<prgTrmSectionToggleLockControllerResponse>;
1091
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CideLytProgramTermSectionService, never>;
1092
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<CideLytProgramTermSectionService>;
1093
+ }
1094
+
1095
+ interface SelectOption {
1096
+ value: string;
1097
+ label: string;
1098
+ }
1099
+ interface ProgramSectionSelectorValues {
1100
+ classProgramId?: string | null;
1101
+ branchId?: string | null;
1102
+ termId?: string | null;
1103
+ sectionId?: string | null;
1104
+ }
1105
+ declare class ProgramSectionSelectorComponent implements OnInit, OnDestroy {
1106
+ readonly formGroup: _angular_core.InputSignal<FormGroup<any>>;
1107
+ readonly classProgramControlName: _angular_core.InputSignal<string>;
1108
+ readonly branchControlName: _angular_core.InputSignal<string>;
1109
+ readonly termControlName: _angular_core.InputSignal<string>;
1110
+ readonly sectionControlName: _angular_core.InputSignal<string>;
1111
+ readonly academicYearId: _angular_core.InputSignal<string | null>;
1112
+ readonly entityId: _angular_core.InputSignal<string | null>;
1113
+ readonly disabled: _angular_core.InputSignal<boolean>;
1114
+ readonly showLabels: _angular_core.InputSignal<boolean>;
1115
+ readonly gridCols: _angular_core.InputSignal<string>;
1116
+ readonly showAllPrograms: _angular_core.InputSignal<boolean>;
1117
+ readonly includeInactive: _angular_core.InputSignal<boolean>;
1118
+ readonly valuesChange: _angular_core.OutputEmitterRef<ProgramSectionSelectorValues>;
1119
+ private readonly destroyRef;
1120
+ private readonly http;
1121
+ private readonly classProgramService;
1122
+ private readonly branchService;
1123
+ private readonly sectionService;
1124
+ private readonly notificationService;
1125
+ readonly classProgramMasters: _angular_core.WritableSignal<AcaClassProgramMasterResponse[]>;
1126
+ readonly classProgramBranches: _angular_core.WritableSignal<SelectOption[]>;
1127
+ readonly classProgramTerms: _angular_core.WritableSignal<SelectOption[]>;
1128
+ readonly programTermSections: _angular_core.WritableSignal<SelectOption[]>;
1129
+ readonly classProgramMastersLoading: _angular_core.WritableSignal<boolean>;
1130
+ readonly classProgramBranchesLoading: _angular_core.WritableSignal<boolean>;
1131
+ readonly classProgramTermsLoading: _angular_core.WritableSignal<boolean>;
1132
+ readonly programTermSectionsLoading: _angular_core.WritableSignal<boolean>;
1133
+ readonly selectedClassProgram: _angular_core.WritableSignal<AcaClassProgramMasterResponse | null>;
1134
+ readonly hasSections: _angular_core.WritableSignal<boolean>;
1135
+ private isProcessingInitialValues;
1136
+ getClassProgramControl(): FormControl;
1137
+ getBranchControl(): FormControl;
1138
+ getTermControl(): FormControl;
1139
+ getSectionControl(): FormControl;
1140
+ readonly classProgramOptions: _angular_core.Signal<{
1141
+ value: string;
1142
+ label: string;
1143
+ }[]>;
1144
+ readonly showBranchDropdown: _angular_core.Signal<boolean>;
1145
+ readonly showTermDropdown: _angular_core.Signal<boolean>;
1146
+ constructor();
1147
+ ngOnInit(): void;
1148
+ private handleInitialValues;
1149
+ ngOnDestroy(): void;
1150
+ private setupFormListeners;
1151
+ private loadClassProgramMasters;
1152
+ onClassProgramSearch(event: selectSearchType): void;
1153
+ onClassProgramChange(classProgramId: string | null | undefined): void;
1154
+ private loadClassProgramBranches;
1155
+ onBranchChange(branchId: string | null | undefined): void;
1156
+ private loadClassProgramTerms;
1157
+ onTermChange(termId: string | null | undefined): void;
1158
+ private loadProgramTermSections;
1159
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProgramSectionSelectorComponent, never>;
1160
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ProgramSectionSelectorComponent, "cide-academics-program-section-selector", never, { "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "classProgramControlName": { "alias": "classProgramControlName"; "required": false; "isSignal": true; }; "branchControlName": { "alias": "branchControlName"; "required": false; "isSignal": true; }; "termControlName": { "alias": "termControlName"; "required": false; "isSignal": true; }; "sectionControlName": { "alias": "sectionControlName"; "required": false; "isSignal": true; }; "academicYearId": { "alias": "academicYearId"; "required": false; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "gridCols": { "alias": "gridCols"; "required": false; "isSignal": true; }; "showAllPrograms": { "alias": "showAllPrograms"; "required": false; "isSignal": true; }; "includeInactive": { "alias": "includeInactive"; "required": false; "isSignal": true; }; }, { "valuesChange": "valuesChange"; }, never, never, true, never>;
1161
+ }
1162
+
1163
+ export { AcademicYearCreateComponent, AcademicYearListComponent, CideLytAcademicYearMappingService, CideLytAcademicYearService, CideLytClassProgramBranchFormComponent, CideLytClassProgramBranchListComponent, CideLytClassProgramBranchService, CideLytProgramTermSectionService, ProgramSectionSelectorComponent, ProgramTermSectionCreateComponent, ProgramTermSectionListComponent, academicsRoutes };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloud-ide-academics",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"