simpo-component-library 3.5.2 → 3.5.5

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.
@@ -725,6 +725,9 @@ class ElementServiceService {
725
725
  getAllVehicleTypes(data) {
726
726
  return this.http.put(this.CMIS_URL + `crm/get/vehicle-type`, data);
727
727
  }
728
+ getAllCombos(data) {
729
+ return this.http.put(this.CMIS_URL + `crm/combo/filter`, data);
730
+ }
728
731
  getAllStops(bId) {
729
732
  return this.http.get(this.CMIS_URL + `crm/stops/${bId}?pageNo=0&size=10&isPagination=false`);
730
733
  }
@@ -1469,12 +1472,12 @@ class ImageUplaodService {
1469
1472
  containerName: 'prod-cmis'
1470
1473
  };
1471
1474
  this.UNSPLASH_API_TOKEN = 'iMn43HCZ_FLCMWkZgUtMAjt-p-M6vmaB1Z_3fbetmJA';
1472
- console.log('bucketUrl', this.bucketUrl);
1475
+ // console.log('bucketUrl', this.bucketUrl);
1473
1476
  this.s3Client = new S3Client({
1474
- region: this.bucketUrl.bucketDetails.Region, // e.g., 'us-east-1'
1477
+ region: this.bucketUrl?.bucketDetails?.Region, // e.g., 'us-east-1'
1475
1478
  credentials: fromCognitoIdentityPool({
1476
- identityPoolId: this.bucketUrl.poolId,
1477
- clientConfig: { region: this.bucketUrl.bucketDetails.Region },
1479
+ identityPoolId: this.bucketUrl?.poolId,
1480
+ clientConfig: { region: this.bucketUrl?.bucketDetails?.Region },
1478
1481
  })
1479
1482
  });
1480
1483
  }
@@ -2574,9 +2577,10 @@ class PaymentDetailsComponent {
2574
2577
  this.routeValues = [];
2575
2578
  this.vehicleTypeSearchText = '';
2576
2579
  this.defaultImage = 'https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/917067c1734337280303cancel.png';
2580
+ this.listAllKits = [];
2577
2581
  }
2578
2582
  ngOnInit() {
2579
- this.admissionData.subscriptionPlans = [];
2583
+ // this.admissionData.subscriptionPlans =[]
2580
2584
  this.subscriptionsData.forEach(element => {
2581
2585
  if (element.newPricingList) {
2582
2586
  element.newPricingList.forEach((elem) => {
@@ -2586,13 +2590,15 @@ class PaymentDetailsComponent {
2586
2590
  });
2587
2591
  this.admissionData?.studentFeeStructureV2?.feeConfig.forEach((element) => {
2588
2592
  if (element.termsList.length > 0) {
2589
- element.selectedTermValue = 'SINGLE';
2590
- if (element.selectedTermValue === 'SINGLE') {
2591
- element.term = false;
2592
- element.paid = true;
2593
- }
2594
- else {
2595
- element.paid = false;
2593
+ if (!element.selectedTermValue) {
2594
+ element.selectedTermValue = 'SINGLE';
2595
+ if (element.selectedTermValue === 'SINGLE') {
2596
+ element.term = false;
2597
+ element.paid = true;
2598
+ }
2599
+ else {
2600
+ element.paid = false;
2601
+ }
2596
2602
  }
2597
2603
  }
2598
2604
  else {
@@ -2600,8 +2606,22 @@ class PaymentDetailsComponent {
2600
2606
  }
2601
2607
  });
2602
2608
  this.feeStructure = this.admissionData?.studentFeeStructureV2;
2609
+ if (this.admissionData.subscriptionPlans.length > 0) {
2610
+ this.subscriptionsData.forEach(sub => {
2611
+ sub.newPricingList.forEach((pl) => {
2612
+ pl.selecteStatus = this.admissionData.subscriptionPlans.some((element) => {
2613
+ const match = element.frequency === pl.name;
2614
+ if (match) {
2615
+ this.isSubscriptionSelected(sub);
2616
+ }
2617
+ return match;
2618
+ });
2619
+ });
2620
+ });
2621
+ }
2603
2622
  this.getAllStops();
2604
2623
  this.getVehicleTypes();
2624
+ this.getAllKits();
2605
2625
  }
2606
2626
  getAllStops() {
2607
2627
  this.restService.getAllStops(this.admissionData?.businessDetails?.id).subscribe({
@@ -2635,6 +2655,7 @@ class PaymentDetailsComponent {
2635
2655
  if (element.stopName.split(' ').join('_').toLowerCase() === event.option.value.split(' ').join('_').toLowerCase()) {
2636
2656
  selectedStudent = element;
2637
2657
  this.selectedStop = element;
2658
+ localStorage.setItem('selectedStop', JSON.stringify(this.selectedStop));
2638
2659
  }
2639
2660
  });
2640
2661
  }
@@ -2648,6 +2669,15 @@ class PaymentDetailsComponent {
2648
2669
  this.restService.getAllVehicleTypes(data).subscribe((res) => {
2649
2670
  this.vehicleTypesList = res.data.data;
2650
2671
  this.filteredVehicleTypesList = [...this.vehicleTypesList];
2672
+ const selectedStop = JSON.parse(localStorage.getItem('selectedStop') || 'null');
2673
+ const selectedVehicle = JSON.parse(localStorage.getItem('selectedVehicle') || 'null');
2674
+ this.stopSearchText = selectedStop?.stopName || '';
2675
+ this.vehicleTypeSearchText = selectedVehicle?.vehicleType || '';
2676
+ if (this.admissionData.selectedStopDetail != null) {
2677
+ this.selectedStop = selectedStop;
2678
+ this.selectedVehicleType = selectedVehicle;
2679
+ this.getVehicleRoutesByStops();
2680
+ }
2651
2681
  });
2652
2682
  }
2653
2683
  filtereVehicleTypes() {
@@ -2666,6 +2696,7 @@ class PaymentDetailsComponent {
2666
2696
  this.vehicleTypesList.forEach((element) => {
2667
2697
  if (element.vehicleType.split(' ').join('_').toLowerCase() === event.option.value.split(' ').join('_').toLowerCase()) {
2668
2698
  this.selectedVehicleType = element;
2699
+ localStorage.setItem('selectedVehicle', JSON.stringify(this.selectedVehicleType));
2669
2700
  }
2670
2701
  });
2671
2702
  this.getVehicleRoutesByStops();
@@ -2884,8 +2915,67 @@ class PaymentDetailsComponent {
2884
2915
  this.feeStructure.totalFee += amount;
2885
2916
  }
2886
2917
  }
2918
+ getAllKits() {
2919
+ let data = {
2920
+ "businessId": this.admissionData ? this.admissionData.businessDetails.id : '',
2921
+ "target": "GRADE",
2922
+ "gradeId": localStorage.getItem('gId') || '',
2923
+ "pageNo": 0,
2924
+ "size": 100000
2925
+ };
2926
+ this.restService.getAllCombos(data).subscribe((res) => {
2927
+ res.data.data.forEach((element) => {
2928
+ this.listAllKits.push({
2929
+ id: element.id,
2930
+ img: element.imageUrl,
2931
+ name: element.name,
2932
+ description: element.description,
2933
+ amount: (element.discountedPrice != 0 || element.discountedPrice != null) ? element.discountedPrice : element.totalPrice,
2934
+ originalAmount: element.totalPrice,
2935
+ discountedAmount: element.discountedPrice,
2936
+ paid: false,
2937
+ kitPaymentSelected: true,
2938
+ selected: false
2939
+ });
2940
+ });
2941
+ if (this.admissionData.selectedComboKits.length > 0) {
2942
+ this.listAllKits = this.listAllKits.map((kit) => {
2943
+ const selected = this.admissionData.selectedComboKits.find((sk) => sk.id === kit.id);
2944
+ return selected ? selected : kit;
2945
+ });
2946
+ }
2947
+ }, (err) => {
2948
+ this.snackBar.open(err.error ? err.error.message : err.statusText, 'Close', {
2949
+ duration: 1500
2950
+ });
2951
+ });
2952
+ }
2953
+ addRemoveKit(item, ev) {
2954
+ if (ev.target.checked) {
2955
+ const exists = this.admissionData.selectedComboKits.some((kit) => kit.id === item.id);
2956
+ if (!exists) {
2957
+ this.admissionData.selectedComboKits.push(item);
2958
+ this.calculateTotalAmountV2(1, item);
2959
+ }
2960
+ }
2961
+ else {
2962
+ this.calculateTotalAmountV2(-1, item);
2963
+ this.admissionData.selectedComboKits = this.admissionData.selectedComboKits.filter((kit) => kit.id !== item.id);
2964
+ }
2965
+ }
2966
+ changePaymentStatus(item) {
2967
+ if (!item.kitPaymentSelected) {
2968
+ this.calculateTotalAmountV2(-1, item);
2969
+ }
2970
+ else {
2971
+ this.calculateTotalAmountV2(1, item);
2972
+ }
2973
+ }
2974
+ hasActiveKits() {
2975
+ return this.admissionData.selectedComboKits.length > 0;
2976
+ }
2887
2977
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentDetailsComponent, deps: [{ token: ElementServiceService }, { token: i2$2.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }
2888
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaymentDetailsComponent, isStandalone: true, selector: "simpo-payment-details", inputs: { admissionData: "admissionData", subscriptionsData: "subscriptionsData", termPaymentList: "termPaymentList" }, ngImport: i0, template: "<!-- <section class=\"main-section\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"heading left-side\">\n Admission Fee\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\n <div class=\"heading mb-20\">{{configList}}</div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\n <p class=\"heading\">{{type}}</p>\n\n <table class=\"subscription-table w-100\">\n <thead>\n <th>Subscription Title</th>\n <th>Monthly</th>\n <th>Quaterly</th>\n <th>Yearly</th>\n <th>On Demand</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\n <td>{{data.subName}}</td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'MONTHLY'\" (click)=\"toggleSelection(data, 'MONTHLY')\" [checked]=\"data.selectedOption === 'MONTHLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['MONTHLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'QUARTERLY'\" (click)=\"toggleSelection(data, 'QUARTERLY')\" [checked]=\"data.selectedOption === 'QUARTERLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['QUARTERLY']}}\n </label>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\n </div>\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ANNUALLY'\" (click)=\"toggleSelection(data, 'ANNUALLY')\" [checked]=\"data.selectedOption === 'ANNUALLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ANNUALLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ONDEMAND'\" (click)=\"toggleSelection(data, 'ONDEMAND')\" [checked]=\"data.selectedOption === 'ONDEMAND'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ONDEMAND']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"left-side mt-10\">\n <p class=\"heading\">Payment Plan</p>\n\n <div class=\"d-flex g-2\">\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('ANNUALLY')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'ANNUALLY'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Annually\n </label>\n </div>\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('TERM')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'TERM'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Term\n </label>\n </div>\n </div>\n\n <div class=\"admission\" *ngIf=\"admissionData.paymentPlanType === 'TERM'\">\n <mat-form-field class=\"input-text\" appearance=\"outline\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" multiple=\"true\" [(ngModel)]=\"feeStructure.termPaymentList\" (ngModelChange)=\"calculateTotalAmount()\">\n <mat-option *ngFor=\"let term of termPaymentList\" [value]=\"term\">term {{term.termNumber}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </div>\n </div>\n <div class=\"col-md-6 right-side\">\n <div class=\"heading mb-20\">\n Fee Calculation\n </div>\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\n </div>\n\n <div class=\"total-fee\">\n <div class=\"heading mb-5\">\n Total Fee\n </div>\n <div class=\"amount\">\n \u20B9 {{feeStructure.totalAmount}}\n </div>\n </div>\n </div>\n </div>\n</section> -->\n\n\n<section class=\"main_payment_details_section h-100 w-100 p-2 d-flex justify-content-between\">\n <div class=\"left_payment_details h-100 p-2\">\n <div class=\"fees_section\">\n <div class=\"sec_title\">\n Fees\n </div>\n <div class=\"mt-2 all_fee_configs\">\n <ng-container *ngFor=\"let item of feeStructure?.feeConfig\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\">\u20B9 {{item.amount}}</div>\n </div>\n <div *ngIf=\"item.termsList.length > 0\">\n <div class=\"change_selection\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.selectedTermValue\"\n name=\"termOption_{{ item.feeHead.id}}\"\n (change)=\"changeTermValue(item)\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"termCount\" *ngIf=\"item.selectedTermValue === 'TERM'\">\n <div class=\"check_data\">\n <ng-container *ngFor=\"let term of item.termsList;let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addTerms($event,term)\">\n <div class=\"data_value\">{{getOrdinalSuffix(i+1)}} Term (\u20B9 {{term?.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"subscriptions_list mt-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"title\">Transport Fee</div>\n <div class=\"selecting_types d-flex align-items-center gap-2 justify-content-end\">\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Stop\" [matAutocomplete]=\"autoGrade\"\n [(ngModel)]=\"stopSearchText\" (input)=\"filterStops()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade=\"matAutocomplete\" (optionSelected)=\"onStopSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredStopsList\" [value]=\"stop.stopName\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.stopName | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Vehicle Type\" [matAutocomplete]=\"autoGrade1\"\n [(ngModel)]=\"vehicleTypeSearchText\" (input)=\"filtereVehicleTypes()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade1=\"matAutocomplete\" (optionSelected)=\"onVehicleTypeSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredVehicleTypesList\" [value]=\"stop.vehicleType\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.vehicleType | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of routeValues\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-checkbox [checked]=\"admissionData.selectedStopDetail === item\"\n (change)=\"onCheckboxChange(item, $event)\"></mat-checkbox>\n\n <div class=\"d-flex justify-content-between align-items-center\" style=\"width:92%\">\n <div class=\"fee_title\">\n {{ item.transport.route ? item.transport.route.name : 'N/A' }}\n <span>(<span style=\"font-size:12px;font-family: var(--primary-font-family);\">Pickup Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getPickupTime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n -\n <span style=\"font-size:12px;font-family: var(--primary-font-family);\">Drop Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getDroptime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n )</span>\n </div>\n <div class=\"fee_amount\">\u20B9 {{ item.charges.totalAmount }}</div>\n </div>\n </div>\n\n <div *ngIf=\"item?.charges.termPaymentList.length > 0\">\n <div class=\"change_selection\" style=\"width:90%;margin:0 auto\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.charges.selectedTermValue\"\n (change)=\"changeTransportTermValue(item)\" [disabled]=\"admissionData.selectedStopDetail !== item\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"termCount\" *ngIf=\"item.charges.selectedTermValue === 'TERM'\">\n <div class=\"check_data\" style=\"width:75%;margin:0 auto\">\n <ng-container *ngFor=\"let term of item.charges.termPaymentList; let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addSingleStop($event, term)\"\n [disabled]=\"admissionData.selectedStopDetail !== item\" />\n <div class=\"data_value\">{{ getOrdinalSuffix(i + 1) }} Term (\u20B9 {{term.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"subscriptionsData.length > 0\">\n <div class=\"title\">Subscriptions</div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of subscriptionsData\">\n <div class=\"top_1\">\n <div class=\"d-flex align-items-center gap-3\">\n <mat-checkbox [checked]=\"isSubscriptionSelected(item)\"\n (change)=\"onSubscriptionItemChange($event, item)\"></mat-checkbox>\n <div class=\"subscription_title\">\n {{item.subscriptionTitle}}\n </div>\n </div>\n <div class=\"subscription_types\" style=\"width:85%;margin:auto\">\n <ng-container *ngFor=\"let subV of item.newPricingList;let i = index\">\n <div class=\"single_subscrption d-flex gap-2 mt-2\">\n <div class=\"single_title d-flex gap-3 align-items-center\" style=\"width:25%\">\n <input type=\"radio\" [checked]=\"subV.selecteStatus\"\n (change)=\"toggleSubscriptionSelection(item.newPricingList, i, item)\"\n [disabled]=\"!disableSubscriptionSelection(item)\">\n <div class=\"data_value\">{{subV.name | titlecase}}</div>\n </div>\n <div class=\"single_value\">\n {{subV.amount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right_payment_details h-100\">\n <div class=\"total_payment_details h-100 w-100 p-3\">\n <div class=\"mt-2 calculation_table\">\n <div class=\"calculation_single_part\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Total Academic Fee Breakdown\n </div>\n <ng-container *ngFor=\"let item of feeStructure.feeConfig\">\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\" *ngIf=\"item.termsList.length === 0 || item.selectedTermValue != 'TERM'\">\n <span [ngClass]=\"(item?.concession != null && item?.concession?.length != 0) ? 'strikethrough' : ''\">\n \u20B9 {{item.amount}}\n </span>\n <span\n *ngIf=\"item.concession != null && item?.concession.length != 0\">({{item.appliedConcessionAmount}})</span>\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"item.termsList.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of item.termsList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\" *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"admissionData.selectedStopDetail != null\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Transport Fee\n </div>\n <ng-container>\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{admissionData.selectedStopDetail?.charges?.vehicleType ?\n admissionData.selectedStopDetail?.charges?.vehicleType?.name : 'N/A'}}</div>\n <div class=\"fee_amount\"\n *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length === 0 || admissionData.selectedStopDetail?.charges?.selectedTermValue != 'TERM'\">\n \u20B9\n {{admissionData.selectedStopDetail?.charges?.totalAmount}}\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of admissionData.selectedStopDetail?.charges?.termPaymentList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\"\n *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveSubscriptions()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Subscriptions\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.subscriptionPlans\">\n <div class=\"fee_title\">{{item.subName | titlecase}}</div>\n <ng-container>\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"key\">\n {{item.frequency | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.pricing[item.frequency]}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer_section total_container\">\n <div class=\"footer_title\">Grand Total Fee</div>\n <div class=\"d-flex justify-content-center align-items-center\">\n \u20B9 {{feeStructure?.totalFee}}\n </div>\n </div>\n </div>\n </div>\n</section>", styles: [".left_payment_details{width:55%;overflow-y:scroll}.right_payment_details{width:45%;padding:10px}.sec_title{font-size:16px;font-family:var(--primary-semi-bold-font-family);font-weight:500;color:#000}.single_fee_config{background-color:#f1f7ff99;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.fee_title{font-size:14.5px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.fee_amount,.fee_amount span{font-size:14.5px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.total_payment_details{background:#faf5f199;box-shadow:0 0 2px #d3d3d3;border-radius:8px}.total_title{font-size:20px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500;line-height:18px}.calculation_table{height:90%;overflow-y:scroll}.footer_section{height:10%;display:flex;justify-content:space-between;align-items:center}.footer_title{font-size:18px;font-family:var(--primary-font-family);font-weight:500;color:#000}.total_container{background-color:#fff;padding:10px;font-size:20px;font-weight:500;font-family:var(--primary-semi-bold-font-family);color:#000}.calculation_single_part{background-color:#fff;padding:10px;border-radius:8px;margin-bottom:10px}.selected_single_term{margin-bottom:10px}.key{font-weight:500;font-size:14px;font-family:var(--primary-font-family);color:#3a3838;margin-left:30px}.fw-500{font-weight:500;font-family:var(--primary-semi-bold-font-family);font-size:16px;margin:0!important}.check_data{width:90%;margin:auto}.singleData{margin-bottom:10px}.singleData input{width:16px;height:16px}.singleData .data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.title{font-family:var(--primary-semi-bold-font-family);font-weight:500;font-size:15px;color:#000}.subscription_title{font-family:var(--primary-font-family);font-weight:500;font-size:14px;color:#000}.single_value{font-size:16px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.single_title input{width:16px;height:16px}.data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.top_1{background:#d2d4b999;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i7$2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i9.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i9.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
2978
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PaymentDetailsComponent, isStandalone: true, selector: "simpo-payment-details", inputs: { admissionData: "admissionData", subscriptionsData: "subscriptionsData", termPaymentList: "termPaymentList" }, ngImport: i0, template: "<!-- <section class=\"main-section\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"heading left-side\">\n Admission Fee\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\n <div class=\"heading mb-20\">{{configList}}</div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\n <p class=\"heading\">{{type}}</p>\n\n <table class=\"subscription-table w-100\">\n <thead>\n <th>Subscription Title</th>\n <th>Monthly</th>\n <th>Quaterly</th>\n <th>Yearly</th>\n <th>On Demand</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\n <td>{{data.subName}}</td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'MONTHLY'\" (click)=\"toggleSelection(data, 'MONTHLY')\" [checked]=\"data.selectedOption === 'MONTHLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['MONTHLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'QUARTERLY'\" (click)=\"toggleSelection(data, 'QUARTERLY')\" [checked]=\"data.selectedOption === 'QUARTERLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['QUARTERLY']}}\n </label>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\n </div>\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ANNUALLY'\" (click)=\"toggleSelection(data, 'ANNUALLY')\" [checked]=\"data.selectedOption === 'ANNUALLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ANNUALLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ONDEMAND'\" (click)=\"toggleSelection(data, 'ONDEMAND')\" [checked]=\"data.selectedOption === 'ONDEMAND'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ONDEMAND']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"left-side mt-10\">\n <p class=\"heading\">Payment Plan</p>\n\n <div class=\"d-flex g-2\">\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('ANNUALLY')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'ANNUALLY'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Annually\n </label>\n </div>\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('TERM')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'TERM'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Term\n </label>\n </div>\n </div>\n\n <div class=\"admission\" *ngIf=\"admissionData.paymentPlanType === 'TERM'\">\n <mat-form-field class=\"input-text\" appearance=\"outline\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" multiple=\"true\" [(ngModel)]=\"feeStructure.termPaymentList\" (ngModelChange)=\"calculateTotalAmount()\">\n <mat-option *ngFor=\"let term of termPaymentList\" [value]=\"term\">term {{term.termNumber}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </div>\n </div>\n <div class=\"col-md-6 right-side\">\n <div class=\"heading mb-20\">\n Fee Calculation\n </div>\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\n </div>\n\n <div class=\"total-fee\">\n <div class=\"heading mb-5\">\n Total Fee\n </div>\n <div class=\"amount\">\n \u20B9 {{feeStructure.totalAmount}}\n </div>\n </div>\n </div>\n </div>\n</section> -->\n\n\n<section class=\"main_payment_details_section h-100 w-100 p-2 d-flex justify-content-between\">\n <div class=\"left_payment_details h-100 p-2\">\n <div class=\"fees_section\">\n <div class=\"sec_title\">\n Fees\n </div>\n <div class=\"mt-2 all_fee_configs\">\n <ng-container *ngFor=\"let item of feeStructure?.feeConfig\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\">\u20B9 {{item.amount}}</div>\n </div>\n <div *ngIf=\"item.termsList.length > 0\">\n <div class=\"change_selection\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.selectedTermValue\"\n name=\"termOption_{{ item.feeHead.id}}\"\n (change)=\"changeTermValue(item)\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"termCount\" *ngIf=\"item.selectedTermValue === 'TERM'\">\n <div class=\"check_data\">\n <ng-container *ngFor=\"let term of item.termsList;let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addTerms($event,term)\" [checked]=\"term.selected\">\n <div class=\"data_value\">{{getOrdinalSuffix(i+1)}} Term (\u20B9 {{term?.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"subscriptions_list mt-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"title\">Transport Fee</div>\n <div class=\"selecting_types d-flex align-items-center gap-2 justify-content-end\">\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Stop\" [matAutocomplete]=\"autoGrade\"\n [(ngModel)]=\"stopSearchText\" (input)=\"filterStops()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade=\"matAutocomplete\" (optionSelected)=\"onStopSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredStopsList\" [value]=\"stop.stopName\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.stopName | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Vehicle Type\" [matAutocomplete]=\"autoGrade1\"\n [(ngModel)]=\"vehicleTypeSearchText\" (input)=\"filtereVehicleTypes()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade1=\"matAutocomplete\" (optionSelected)=\"onVehicleTypeSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredVehicleTypesList\" [value]=\"stop.vehicleType\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.vehicleType | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of routeValues\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-checkbox [checked]=\"admissionData.selectedStopDetail === item\"\n (change)=\"onCheckboxChange(item, $event)\"></mat-checkbox>\n\n <div class=\"d-flex justify-content-between align-items-center\" style=\"width:92%\">\n <div class=\"fee_title\">\n {{ item.transport.route ? item.transport.route.name : 'N/A' }}\n <span>(<span style=\"font-size:12px;font-family: var(--primary-font-family);\">Pickup Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getPickupTime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n -\n <span style=\"font-size:12px;font-family: var(--primary-font-family);\">Drop Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getDroptime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n )</span>\n </div>\n <div class=\"fee_amount\">\u20B9 {{ item.charges.totalAmount }}</div>\n </div>\n </div>\n\n <div *ngIf=\"item?.charges.termPaymentList.length > 0\">\n <div class=\"change_selection\" style=\"width:90%;margin:0 auto\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.charges.selectedTermValue\"\n (change)=\"changeTransportTermValue(item)\" [disabled]=\"admissionData.selectedStopDetail !== item\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"termCount\" *ngIf=\"item.charges.selectedTermValue === 'TERM'\">\n <div class=\"check_data\" style=\"width:75%;margin:0 auto\">\n <ng-container *ngFor=\"let term of item.charges.termPaymentList; let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addSingleStop($event, term)\"\n [disabled]=\"admissionData.selectedStopDetail !== item\" />\n <div class=\"data_value\">{{ getOrdinalSuffix(i + 1) }} Term (\u20B9 {{term.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"subscriptionsData.length > 0\">\n <div class=\"title\">Subscriptions</div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of subscriptionsData\">\n <div class=\"top_1\">\n <div class=\"d-flex align-items-center gap-3\">\n <mat-checkbox [checked]=\"isSubscriptionSelected(item)\"\n (change)=\"onSubscriptionItemChange($event, item)\"></mat-checkbox>\n <div class=\"subscription_title\">\n {{item.subscriptionTitle}}\n </div>\n </div>\n <div class=\"subscription_types\" style=\"width:85%;margin:auto\">\n <ng-container *ngFor=\"let subV of item.newPricingList;let i = index\">\n <div class=\"single_subscrption d-flex gap-2 mt-2\">\n <div class=\"single_title d-flex gap-3 align-items-center\" style=\"width:25%\">\n <input type=\"radio\" [checked]=\"subV.selecteStatus\"\n (change)=\"toggleSubscriptionSelection(item.newPricingList, i, item)\"\n [disabled]=\"!disableSubscriptionSelection(item)\">\n <div class=\"data_value\">{{subV.name | titlecase}}</div>\n </div>\n <div class=\"single_value\">\n {{subV.amount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"listAllKits.length > 0\">\n <div class=\"title\">Student Kit</div>\n <div class=\"list_all_subscriptions mt-2 d-flex gap-2 flex-wrap\">\n <ng-container *ngFor=\"let item of listAllKits;let i = index\">\n <div class=\"single_kit\">\n <div class=\"top_layer d-flex justify-content-between align-items-center\">\n <div class=\"selection\">\n <input type=\"checkbox\" [(ngModel)]=\"item.selected\" class=\"cursor-pointer\"\n (change)=\"addRemoveKit(item,$event)\">\n </div>\n <div class=\"amount_section\">\n <div class=\"original_amount\" *ngIf=\"item.discountedAmount === 0\">\u20B9 {{item.amount}}</div>\n <div class=\"discounted_amount\" *ngIf=\"item.discountedAmount != 0\">\n \u20B9\n <span class=\"strikethrough\">{{item.originalAmount}}</span> &nbsp;\n <span style=\"font-family:var(--primary-semi-bold-font-family)\">{{item.discountedAmount}}</span>\n </div>\n </div>\n </div>\n <div class=\"kit_bottom_layer\">\n <div class=\"image_section d-flex justify-content-center align-items-center\">\n <div class=\"img_sec\" *ngIf=\"item.img != null\"><img [src]=\"item.img\" alt=\"\"></div>\n <div class=\"img_sec d-flex justify-content-center align-items-center\" *ngIf=\"item.img === null\">\n {{item.name.split('')[0] | uppercase}}\n </div>\n </div>\n <div class=\"mt-2 kit_title text-center\">\n {{item.name}}\n </div>\n <div class=\"kit_description text-center\" style=\"margin-top:4px\">\n {{item.description}}\n </div>\n </div>\n <div class=\"kit_footer_layer mt-2\" *ngIf=\"item.selected\">\n <div class=\"d-flex align-items-center justify-content-center gap-3 paying_options\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.kitPaymentSelected\"\n (ngModelChange)=\"changePaymentStatus(item)\">\n <mat-radio-button [value]=\"true\"><span style=\"font-family: var(--primary-font-family);font-size: 13px;\">Pay Now</span></mat-radio-button>\n <mat-radio-button [value]=\"false\"><span style=\"font-family: var(--primary-font-family);font-size: 13px;\">Pay Later</span></mat-radio-button>\n </mat-radio-group> \n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right_payment_details h-100\">\n <div class=\"total_payment_details h-100 w-100 p-3\">\n <div class=\"mt-2 calculation_table\">\n <div class=\"calculation_single_part\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Total Academic Fee Breakdown\n </div>\n <ng-container *ngFor=\"let item of feeStructure.feeConfig\">\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\" *ngIf=\"item.termsList.length === 0 || item.selectedTermValue != 'TERM'\">\n <span [ngClass]=\"(item?.concession != null && item?.concession?.length != 0) ? 'strikethrough' : ''\">\n \u20B9 {{item.amount}}\n </span>\n <span\n *ngIf=\"item.concession != null && item?.concession.length != 0\">({{item.appliedConcessionAmount}})</span>\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"item.termsList.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of item.termsList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\" *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"admissionData.selectedStopDetail != null\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Transport Fee\n </div>\n <ng-container>\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{admissionData.selectedStopDetail?.charges?.vehicleType ?\n admissionData.selectedStopDetail?.charges?.vehicleType?.name : 'N/A'}}</div>\n <div class=\"fee_amount\"\n *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length === 0 || admissionData.selectedStopDetail?.charges?.selectedTermValue != 'TERM'\">\n \u20B9\n {{admissionData.selectedStopDetail?.charges?.totalAmount}}\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of admissionData.selectedStopDetail?.charges?.termPaymentList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\"\n *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveSubscriptions()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Subscriptions\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.subscriptionPlans\">\n <div class=\"fee_title\">{{item.subName | titlecase}}</div>\n <ng-container>\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"key\">\n {{item.frequency | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.pricing[item.frequency]}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveKits()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Student Kits\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.selectedComboKits\">\n <ng-container *ngIf=\"item?.kitPaymentSelected\">\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"fee_title\">\n {{item.name | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.amount}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer_section total_container\">\n <div class=\"footer_title\">Grand Total Fee</div>\n <div class=\"d-flex justify-content-center align-items-center\">\n \u20B9 {{feeStructure?.totalFee}}\n </div>\n </div>\n </div>\n </div>\n</section>", styles: [".left_payment_details{width:55%;overflow-y:scroll}.right_payment_details{width:45%;padding:10px}.sec_title{font-size:16px;font-family:var(--primary-semi-bold-font-family);font-weight:500;color:#000}.single_fee_config{background-color:#f1f7ff99;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.fee_title{font-size:14.5px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.fee_amount,.fee_amount span{font-size:14.5px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.total_payment_details{background:#faf5f199;box-shadow:0 0 2px #d3d3d3;border-radius:8px}.total_title{font-size:20px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500;line-height:18px}.calculation_table{height:90%;overflow-y:scroll}.footer_section{height:10%;display:flex;justify-content:space-between;align-items:center}.footer_title{font-size:18px;font-family:var(--primary-font-family);font-weight:500;color:#000}.total_container{background-color:#fff;padding:10px;font-size:20px;font-weight:500;font-family:var(--primary-semi-bold-font-family);color:#000}.calculation_single_part{background-color:#fff;padding:10px;border-radius:8px;margin-bottom:10px}.selected_single_term{margin-bottom:10px}.key{font-weight:500;font-size:14px;font-family:var(--primary-font-family);color:#3a3838;margin-left:30px}.fw-500{font-weight:500;font-family:var(--primary-semi-bold-font-family);font-size:16px;margin:0!important}.check_data{width:90%;margin:auto}.singleData{margin-bottom:10px}.singleData input{width:16px;height:16px}.singleData .data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.title{font-family:var(--primary-semi-bold-font-family);font-weight:500;font-size:15px;color:#000}.subscription_title{font-family:var(--primary-font-family);font-weight:500;font-size:14px;color:#000}.single_value{font-size:16px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.single_title input{width:16px;height:16px}.data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.top_1{background:#d2d4b999;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.discounted_amount span,.original_amount{font-family:var(--primary-font-family);font-weight:500;font-size:13px}.img_sec{width:60px;height:60px;border-radius:50%;border:2px solid #0f9af1;font-size:18px;font-family:var(--primary-semi-bold-font-family);font-weight:500}.img_sec img{width:100%;height:100%;border-radius:50%}.selection input{width:16px;height:16px}.kit_title{font-size:14px;font-family:var(--primary-font-family);font-weight:500;color:#000}.kit_description{color:#434443;font-size:13px;font-family:var(--primary-font-family);font-weight:500}.paying_options label{font-size:14px;font-family:var(--primary-font-family);font-weight:500}.paying_options label input{width:16px;height:16px}.kit_bottom_layer{height:150px;overflow-y:scroll}.single_kit{background-color:#f2f2f9;padding:10px;border-radius:6px;width:32%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i7$2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i8$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i9.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i9.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
2889
2979
  }
2890
2980
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PaymentDetailsComponent, decorators: [{
2891
2981
  type: Component,
@@ -2900,7 +2990,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2900
2990
  MatDialogModule,
2901
2991
  MatAutocompleteModule,
2902
2992
  MatInputModule
2903
- ], template: "<!-- <section class=\"main-section\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"heading left-side\">\n Admission Fee\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\n <div class=\"heading mb-20\">{{configList}}</div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\n <p class=\"heading\">{{type}}</p>\n\n <table class=\"subscription-table w-100\">\n <thead>\n <th>Subscription Title</th>\n <th>Monthly</th>\n <th>Quaterly</th>\n <th>Yearly</th>\n <th>On Demand</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\n <td>{{data.subName}}</td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'MONTHLY'\" (click)=\"toggleSelection(data, 'MONTHLY')\" [checked]=\"data.selectedOption === 'MONTHLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['MONTHLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'QUARTERLY'\" (click)=\"toggleSelection(data, 'QUARTERLY')\" [checked]=\"data.selectedOption === 'QUARTERLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['QUARTERLY']}}\n </label>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\n </div>\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ANNUALLY'\" (click)=\"toggleSelection(data, 'ANNUALLY')\" [checked]=\"data.selectedOption === 'ANNUALLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ANNUALLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ONDEMAND'\" (click)=\"toggleSelection(data, 'ONDEMAND')\" [checked]=\"data.selectedOption === 'ONDEMAND'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ONDEMAND']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"left-side mt-10\">\n <p class=\"heading\">Payment Plan</p>\n\n <div class=\"d-flex g-2\">\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('ANNUALLY')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'ANNUALLY'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Annually\n </label>\n </div>\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('TERM')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'TERM'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Term\n </label>\n </div>\n </div>\n\n <div class=\"admission\" *ngIf=\"admissionData.paymentPlanType === 'TERM'\">\n <mat-form-field class=\"input-text\" appearance=\"outline\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" multiple=\"true\" [(ngModel)]=\"feeStructure.termPaymentList\" (ngModelChange)=\"calculateTotalAmount()\">\n <mat-option *ngFor=\"let term of termPaymentList\" [value]=\"term\">term {{term.termNumber}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </div>\n </div>\n <div class=\"col-md-6 right-side\">\n <div class=\"heading mb-20\">\n Fee Calculation\n </div>\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\n </div>\n\n <div class=\"total-fee\">\n <div class=\"heading mb-5\">\n Total Fee\n </div>\n <div class=\"amount\">\n \u20B9 {{feeStructure.totalAmount}}\n </div>\n </div>\n </div>\n </div>\n</section> -->\n\n\n<section class=\"main_payment_details_section h-100 w-100 p-2 d-flex justify-content-between\">\n <div class=\"left_payment_details h-100 p-2\">\n <div class=\"fees_section\">\n <div class=\"sec_title\">\n Fees\n </div>\n <div class=\"mt-2 all_fee_configs\">\n <ng-container *ngFor=\"let item of feeStructure?.feeConfig\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\">\u20B9 {{item.amount}}</div>\n </div>\n <div *ngIf=\"item.termsList.length > 0\">\n <div class=\"change_selection\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.selectedTermValue\"\n name=\"termOption_{{ item.feeHead.id}}\"\n (change)=\"changeTermValue(item)\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"termCount\" *ngIf=\"item.selectedTermValue === 'TERM'\">\n <div class=\"check_data\">\n <ng-container *ngFor=\"let term of item.termsList;let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addTerms($event,term)\">\n <div class=\"data_value\">{{getOrdinalSuffix(i+1)}} Term (\u20B9 {{term?.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"subscriptions_list mt-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"title\">Transport Fee</div>\n <div class=\"selecting_types d-flex align-items-center gap-2 justify-content-end\">\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Stop\" [matAutocomplete]=\"autoGrade\"\n [(ngModel)]=\"stopSearchText\" (input)=\"filterStops()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade=\"matAutocomplete\" (optionSelected)=\"onStopSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredStopsList\" [value]=\"stop.stopName\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.stopName | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Vehicle Type\" [matAutocomplete]=\"autoGrade1\"\n [(ngModel)]=\"vehicleTypeSearchText\" (input)=\"filtereVehicleTypes()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade1=\"matAutocomplete\" (optionSelected)=\"onVehicleTypeSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredVehicleTypesList\" [value]=\"stop.vehicleType\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.vehicleType | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of routeValues\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-checkbox [checked]=\"admissionData.selectedStopDetail === item\"\n (change)=\"onCheckboxChange(item, $event)\"></mat-checkbox>\n\n <div class=\"d-flex justify-content-between align-items-center\" style=\"width:92%\">\n <div class=\"fee_title\">\n {{ item.transport.route ? item.transport.route.name : 'N/A' }}\n <span>(<span style=\"font-size:12px;font-family: var(--primary-font-family);\">Pickup Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getPickupTime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n -\n <span style=\"font-size:12px;font-family: var(--primary-font-family);\">Drop Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getDroptime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n )</span>\n </div>\n <div class=\"fee_amount\">\u20B9 {{ item.charges.totalAmount }}</div>\n </div>\n </div>\n\n <div *ngIf=\"item?.charges.termPaymentList.length > 0\">\n <div class=\"change_selection\" style=\"width:90%;margin:0 auto\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.charges.selectedTermValue\"\n (change)=\"changeTransportTermValue(item)\" [disabled]=\"admissionData.selectedStopDetail !== item\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"termCount\" *ngIf=\"item.charges.selectedTermValue === 'TERM'\">\n <div class=\"check_data\" style=\"width:75%;margin:0 auto\">\n <ng-container *ngFor=\"let term of item.charges.termPaymentList; let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addSingleStop($event, term)\"\n [disabled]=\"admissionData.selectedStopDetail !== item\" />\n <div class=\"data_value\">{{ getOrdinalSuffix(i + 1) }} Term (\u20B9 {{term.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"subscriptionsData.length > 0\">\n <div class=\"title\">Subscriptions</div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of subscriptionsData\">\n <div class=\"top_1\">\n <div class=\"d-flex align-items-center gap-3\">\n <mat-checkbox [checked]=\"isSubscriptionSelected(item)\"\n (change)=\"onSubscriptionItemChange($event, item)\"></mat-checkbox>\n <div class=\"subscription_title\">\n {{item.subscriptionTitle}}\n </div>\n </div>\n <div class=\"subscription_types\" style=\"width:85%;margin:auto\">\n <ng-container *ngFor=\"let subV of item.newPricingList;let i = index\">\n <div class=\"single_subscrption d-flex gap-2 mt-2\">\n <div class=\"single_title d-flex gap-3 align-items-center\" style=\"width:25%\">\n <input type=\"radio\" [checked]=\"subV.selecteStatus\"\n (change)=\"toggleSubscriptionSelection(item.newPricingList, i, item)\"\n [disabled]=\"!disableSubscriptionSelection(item)\">\n <div class=\"data_value\">{{subV.name | titlecase}}</div>\n </div>\n <div class=\"single_value\">\n {{subV.amount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right_payment_details h-100\">\n <div class=\"total_payment_details h-100 w-100 p-3\">\n <div class=\"mt-2 calculation_table\">\n <div class=\"calculation_single_part\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Total Academic Fee Breakdown\n </div>\n <ng-container *ngFor=\"let item of feeStructure.feeConfig\">\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\" *ngIf=\"item.termsList.length === 0 || item.selectedTermValue != 'TERM'\">\n <span [ngClass]=\"(item?.concession != null && item?.concession?.length != 0) ? 'strikethrough' : ''\">\n \u20B9 {{item.amount}}\n </span>\n <span\n *ngIf=\"item.concession != null && item?.concession.length != 0\">({{item.appliedConcessionAmount}})</span>\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"item.termsList.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of item.termsList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\" *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"admissionData.selectedStopDetail != null\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Transport Fee\n </div>\n <ng-container>\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{admissionData.selectedStopDetail?.charges?.vehicleType ?\n admissionData.selectedStopDetail?.charges?.vehicleType?.name : 'N/A'}}</div>\n <div class=\"fee_amount\"\n *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length === 0 || admissionData.selectedStopDetail?.charges?.selectedTermValue != 'TERM'\">\n \u20B9\n {{admissionData.selectedStopDetail?.charges?.totalAmount}}\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of admissionData.selectedStopDetail?.charges?.termPaymentList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\"\n *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveSubscriptions()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Subscriptions\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.subscriptionPlans\">\n <div class=\"fee_title\">{{item.subName | titlecase}}</div>\n <ng-container>\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"key\">\n {{item.frequency | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.pricing[item.frequency]}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer_section total_container\">\n <div class=\"footer_title\">Grand Total Fee</div>\n <div class=\"d-flex justify-content-center align-items-center\">\n \u20B9 {{feeStructure?.totalFee}}\n </div>\n </div>\n </div>\n </div>\n</section>", styles: [".left_payment_details{width:55%;overflow-y:scroll}.right_payment_details{width:45%;padding:10px}.sec_title{font-size:16px;font-family:var(--primary-semi-bold-font-family);font-weight:500;color:#000}.single_fee_config{background-color:#f1f7ff99;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.fee_title{font-size:14.5px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.fee_amount,.fee_amount span{font-size:14.5px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.total_payment_details{background:#faf5f199;box-shadow:0 0 2px #d3d3d3;border-radius:8px}.total_title{font-size:20px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500;line-height:18px}.calculation_table{height:90%;overflow-y:scroll}.footer_section{height:10%;display:flex;justify-content:space-between;align-items:center}.footer_title{font-size:18px;font-family:var(--primary-font-family);font-weight:500;color:#000}.total_container{background-color:#fff;padding:10px;font-size:20px;font-weight:500;font-family:var(--primary-semi-bold-font-family);color:#000}.calculation_single_part{background-color:#fff;padding:10px;border-radius:8px;margin-bottom:10px}.selected_single_term{margin-bottom:10px}.key{font-weight:500;font-size:14px;font-family:var(--primary-font-family);color:#3a3838;margin-left:30px}.fw-500{font-weight:500;font-family:var(--primary-semi-bold-font-family);font-size:16px;margin:0!important}.check_data{width:90%;margin:auto}.singleData{margin-bottom:10px}.singleData input{width:16px;height:16px}.singleData .data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.title{font-family:var(--primary-semi-bold-font-family);font-weight:500;font-size:15px;color:#000}.subscription_title{font-family:var(--primary-font-family);font-weight:500;font-size:14px;color:#000}.single_value{font-size:16px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.single_title input{width:16px;height:16px}.data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.top_1{background:#d2d4b999;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}\n"] }]
2993
+ ], template: "<!-- <section class=\"main-section\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"heading left-side\">\n Admission Fee\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\n <div class=\"heading mb-20\">{{configList}}</div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n </div>\n\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\n <p class=\"heading\">{{type}}</p>\n\n <table class=\"subscription-table w-100\">\n <thead>\n <th>Subscription Title</th>\n <th>Monthly</th>\n <th>Quaterly</th>\n <th>Yearly</th>\n <th>On Demand</th>\n </thead>\n <tbody>\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\n <td>{{data.subName}}</td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'MONTHLY'\" (click)=\"toggleSelection(data, 'MONTHLY')\" [checked]=\"data.selectedOption === 'MONTHLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexRadioDefault2\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['MONTHLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'QUARTERLY'\" (click)=\"toggleSelection(data, 'QUARTERLY')\" [checked]=\"data.selectedOption === 'QUARTERLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['QUARTERLY']}}\n </label>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\n </div>\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ANNUALLY'\" (click)=\"toggleSelection(data, 'ANNUALLY')\" [checked]=\"data.selectedOption === 'ANNUALLY'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ANNUALLY']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n <td>\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\n <input class=\"form-check-input\" type=\"radio\" name=\"subscription{{i}}\" [value]=\"'ONDEMAND'\" (click)=\"toggleSelection(data, 'ONDEMAND')\" [checked]=\"data.selectedOption === 'ONDEMAND'\" [(ngModel)]=\"data.selectedOption\" id=\"flexCheckChecked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n \u20B9 {{data.pricing['ONDEMAND']}}\n </label>\n </div>\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <div class=\"left-side mt-10\">\n <p class=\"heading\">Payment Plan</p>\n\n <div class=\"d-flex g-2\">\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('ANNUALLY')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'ANNUALLY'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Annually\n </label>\n </div>\n <div class=\"form-check\" (click)=\"changeAnnualPaymentTerm('TERM')\">\n <input class=\"form-check-input\" type=\"radio\" value=\"\" name=\"payment-plan\" id=\"flexCheckChecked\" [checked]=\"admissionData.paymentPlanType === 'TERM'\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n Term\n </label>\n </div>\n </div>\n\n <div class=\"admission\" *ngIf=\"admissionData.paymentPlanType === 'TERM'\">\n <mat-form-field class=\"input-text\" appearance=\"outline\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" multiple=\"true\" [(ngModel)]=\"feeStructure.termPaymentList\" (ngModelChange)=\"calculateTotalAmount()\">\n <mat-option *ngFor=\"let term of termPaymentList\" [value]=\"term\">term {{term.termNumber}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </div>\n </div>\n <div class=\"col-md-6 right-side\">\n <div class=\"heading mb-20\">\n Fee Calculation\n </div>\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\n </div>\n\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\n </div>\n\n <div class=\"total-fee\">\n <div class=\"heading mb-5\">\n Total Fee\n </div>\n <div class=\"amount\">\n \u20B9 {{feeStructure.totalAmount}}\n </div>\n </div>\n </div>\n </div>\n</section> -->\n\n\n<section class=\"main_payment_details_section h-100 w-100 p-2 d-flex justify-content-between\">\n <div class=\"left_payment_details h-100 p-2\">\n <div class=\"fees_section\">\n <div class=\"sec_title\">\n Fees\n </div>\n <div class=\"mt-2 all_fee_configs\">\n <ng-container *ngFor=\"let item of feeStructure?.feeConfig\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\">\u20B9 {{item.amount}}</div>\n </div>\n <div *ngIf=\"item.termsList.length > 0\">\n <div class=\"change_selection\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.selectedTermValue\"\n name=\"termOption_{{ item.feeHead.id}}\"\n (change)=\"changeTermValue(item)\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family);font-size:13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"termCount\" *ngIf=\"item.selectedTermValue === 'TERM'\">\n <div class=\"check_data\">\n <ng-container *ngFor=\"let term of item.termsList;let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addTerms($event,term)\" [checked]=\"term.selected\">\n <div class=\"data_value\">{{getOrdinalSuffix(i+1)}} Term (\u20B9 {{term?.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"subscriptions_list mt-3\">\n <div class=\"d-flex justify-content-between align-items-center\">\n <div class=\"title\">Transport Fee</div>\n <div class=\"selecting_types d-flex align-items-center gap-2 justify-content-end\">\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Stop\" [matAutocomplete]=\"autoGrade\"\n [(ngModel)]=\"stopSearchText\" (input)=\"filterStops()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade=\"matAutocomplete\" (optionSelected)=\"onStopSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredStopsList\" [value]=\"stop.stopName\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.stopName | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n <div style=\"width:30%\">\n <mat-form-field appearance=\"outline\" class=\"input_card mt-2 w-100\" style=\"height:40px\">\n <input type=\"text\" matInput placeholder=\"Select Vehicle Type\" [matAutocomplete]=\"autoGrade1\"\n [(ngModel)]=\"vehicleTypeSearchText\" (input)=\"filtereVehicleTypes()\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n <mat-autocomplete #autoGrade1=\"matAutocomplete\" (optionSelected)=\"onVehicleTypeSelection($event)\">\n <mat-option *ngFor=\"let stop of filteredVehicleTypesList\" [value]=\"stop.vehicleType\"\n style=\"font-size: 13px;font-family: var(--primary-font-family);\">\n {{ stop.vehicleType | titlecase }}\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n </div>\n </div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of routeValues\">\n <div class=\"single_fee_config p-3\">\n <div class=\"d-flex gap-2 align-items-center\">\n <mat-checkbox [checked]=\"admissionData.selectedStopDetail === item\"\n (change)=\"onCheckboxChange(item, $event)\"></mat-checkbox>\n\n <div class=\"d-flex justify-content-between align-items-center\" style=\"width:92%\">\n <div class=\"fee_title\">\n {{ item.transport.route ? item.transport.route.name : 'N/A' }}\n <span>(<span style=\"font-size:12px;font-family: var(--primary-font-family);\">Pickup Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getPickupTime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n -\n <span style=\"font-size:12px;font-family: var(--primary-font-family);\">Drop Time :</span>\n <span\n style=\"font-size:12px;font-family: var(--primary-semi-bold-font-family);\">{{getDroptime(item.transport.busRouteStopTimings)\n | date:'h:mm a'}}</span>\n )</span>\n </div>\n <div class=\"fee_amount\">\u20B9 {{ item.charges.totalAmount }}</div>\n </div>\n </div>\n\n <div *ngIf=\"item?.charges.termPaymentList.length > 0\">\n <div class=\"change_selection\" style=\"width:90%;margin:0 auto\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.charges.selectedTermValue\"\n (change)=\"changeTransportTermValue(item)\" [disabled]=\"admissionData.selectedStopDetail !== item\">\n <mat-radio-button value=\"SINGLE\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Single</mat-radio-button>\n <mat-radio-button value=\"TERM\"\n style=\"font-family: var(--primary-font-family); font-size: 13px\">Term</mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"termCount\" *ngIf=\"item.charges.selectedTermValue === 'TERM'\">\n <div class=\"check_data\" style=\"width:75%;margin:0 auto\">\n <ng-container *ngFor=\"let term of item.charges.termPaymentList; let i = index\">\n <div class=\"singleData d-flex gap-3 align-items-end\">\n <input type=\"checkbox\" (change)=\"addSingleStop($event, term)\"\n [disabled]=\"admissionData.selectedStopDetail !== item\" />\n <div class=\"data_value\">{{ getOrdinalSuffix(i + 1) }} Term (\u20B9 {{term.termAmount}})</div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"subscriptionsData.length > 0\">\n <div class=\"title\">Subscriptions</div>\n <div class=\"list_all_subscriptions mt-2\">\n <ng-container *ngFor=\"let item of subscriptionsData\">\n <div class=\"top_1\">\n <div class=\"d-flex align-items-center gap-3\">\n <mat-checkbox [checked]=\"isSubscriptionSelected(item)\"\n (change)=\"onSubscriptionItemChange($event, item)\"></mat-checkbox>\n <div class=\"subscription_title\">\n {{item.subscriptionTitle}}\n </div>\n </div>\n <div class=\"subscription_types\" style=\"width:85%;margin:auto\">\n <ng-container *ngFor=\"let subV of item.newPricingList;let i = index\">\n <div class=\"single_subscrption d-flex gap-2 mt-2\">\n <div class=\"single_title d-flex gap-3 align-items-center\" style=\"width:25%\">\n <input type=\"radio\" [checked]=\"subV.selecteStatus\"\n (change)=\"toggleSubscriptionSelection(item.newPricingList, i, item)\"\n [disabled]=\"!disableSubscriptionSelection(item)\">\n <div class=\"data_value\">{{subV.name | titlecase}}</div>\n </div>\n <div class=\"single_value\">\n {{subV.amount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n <div class=\"subscriptions_list mt-3\" *ngIf=\"listAllKits.length > 0\">\n <div class=\"title\">Student Kit</div>\n <div class=\"list_all_subscriptions mt-2 d-flex gap-2 flex-wrap\">\n <ng-container *ngFor=\"let item of listAllKits;let i = index\">\n <div class=\"single_kit\">\n <div class=\"top_layer d-flex justify-content-between align-items-center\">\n <div class=\"selection\">\n <input type=\"checkbox\" [(ngModel)]=\"item.selected\" class=\"cursor-pointer\"\n (change)=\"addRemoveKit(item,$event)\">\n </div>\n <div class=\"amount_section\">\n <div class=\"original_amount\" *ngIf=\"item.discountedAmount === 0\">\u20B9 {{item.amount}}</div>\n <div class=\"discounted_amount\" *ngIf=\"item.discountedAmount != 0\">\n \u20B9\n <span class=\"strikethrough\">{{item.originalAmount}}</span> &nbsp;\n <span style=\"font-family:var(--primary-semi-bold-font-family)\">{{item.discountedAmount}}</span>\n </div>\n </div>\n </div>\n <div class=\"kit_bottom_layer\">\n <div class=\"image_section d-flex justify-content-center align-items-center\">\n <div class=\"img_sec\" *ngIf=\"item.img != null\"><img [src]=\"item.img\" alt=\"\"></div>\n <div class=\"img_sec d-flex justify-content-center align-items-center\" *ngIf=\"item.img === null\">\n {{item.name.split('')[0] | uppercase}}\n </div>\n </div>\n <div class=\"mt-2 kit_title text-center\">\n {{item.name}}\n </div>\n <div class=\"kit_description text-center\" style=\"margin-top:4px\">\n {{item.description}}\n </div>\n </div>\n <div class=\"kit_footer_layer mt-2\" *ngIf=\"item.selected\">\n <div class=\"d-flex align-items-center justify-content-center gap-3 paying_options\">\n <mat-radio-group aria-label=\"Select an option\" [(ngModel)]=\"item.kitPaymentSelected\"\n (ngModelChange)=\"changePaymentStatus(item)\">\n <mat-radio-button [value]=\"true\"><span style=\"font-family: var(--primary-font-family);font-size: 13px;\">Pay Now</span></mat-radio-button>\n <mat-radio-button [value]=\"false\"><span style=\"font-family: var(--primary-font-family);font-size: 13px;\">Pay Later</span></mat-radio-button>\n </mat-radio-group> \n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div class=\"right_payment_details h-100\">\n <div class=\"total_payment_details h-100 w-100 p-3\">\n <div class=\"mt-2 calculation_table\">\n <div class=\"calculation_single_part\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Total Academic Fee Breakdown\n </div>\n <ng-container *ngFor=\"let item of feeStructure.feeConfig\">\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{item.feeHead ? item.feeHead.name : 'N/A'}}</div>\n <div class=\"fee_amount\" *ngIf=\"item.termsList.length === 0 || item.selectedTermValue != 'TERM'\">\n <span [ngClass]=\"(item?.concession != null && item?.concession?.length != 0) ? 'strikethrough' : ''\">\n \u20B9 {{item.amount}}\n </span>\n <span\n *ngIf=\"item.concession != null && item?.concession.length != 0\">({{item.appliedConcessionAmount}})</span>\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"item.termsList.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of item.termsList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\" *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"admissionData.selectedStopDetail != null\">\n <div class=\"total_title\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Transport Fee\n </div>\n <ng-container>\n <div class=\"d-flex justify-content-between align-items-center\" style=\"margin-top: 8px;\">\n <div class=\"fee_title\">{{admissionData.selectedStopDetail?.charges?.vehicleType ?\n admissionData.selectedStopDetail?.charges?.vehicleType?.name : 'N/A'}}</div>\n <div class=\"fee_amount\"\n *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length === 0 || admissionData.selectedStopDetail?.charges?.selectedTermValue != 'TERM'\">\n \u20B9\n {{admissionData.selectedStopDetail?.charges?.totalAmount}}\n </div>\n </div>\n <div class=\"value fw-500\" *ngIf=\"admissionData.selectedStopDetail?.charges?.termPaymentList?.length >= 0\">\n <div class=\"selecte_terms\">\n <ng-container *ngFor=\"let data of admissionData.selectedStopDetail?.charges?.termPaymentList\">\n <div class=\"selected_single_term d-flex align-items-center justify-content-between\"\n *ngIf=\"data.selected\">\n <div class=\"key\">\n Term {{data.termNumber}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{data.termAmount}}\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveSubscriptions()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Subscriptions\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.subscriptionPlans\">\n <div class=\"fee_title\">{{item.subName | titlecase}}</div>\n <ng-container>\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"key\">\n {{item.frequency | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.pricing[item.frequency]}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"calculation_single_part\" *ngIf=\"hasActiveKits()\">\n <div class=\"new_title mt-2\" style=\"border-bottom: 1px solid #dedede;padding-bottom: 12px;\">\n Student Kits\n </div>\n <div class=\"listing_selected_suscriptions mt-2\">\n <ng-container *ngFor=\"let item of admissionData.selectedComboKits\">\n <ng-container *ngIf=\"item?.kitPaymentSelected\">\n <div class=\"single_payment_calculation d-flex justify-content-between align-items-center mb-1\">\n <div class=\"fee_title\">\n {{item.name | titlecase}}\n </div>\n <div class=\"value fw-500\">\n \u20B9 {{item.amount}}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"footer_section total_container\">\n <div class=\"footer_title\">Grand Total Fee</div>\n <div class=\"d-flex justify-content-center align-items-center\">\n \u20B9 {{feeStructure?.totalFee}}\n </div>\n </div>\n </div>\n </div>\n</section>", styles: [".left_payment_details{width:55%;overflow-y:scroll}.right_payment_details{width:45%;padding:10px}.sec_title{font-size:16px;font-family:var(--primary-semi-bold-font-family);font-weight:500;color:#000}.single_fee_config{background-color:#f1f7ff99;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.fee_title{font-size:14.5px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.fee_amount,.fee_amount span{font-size:14.5px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.total_payment_details{background:#faf5f199;box-shadow:0 0 2px #d3d3d3;border-radius:8px}.total_title{font-size:20px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500;line-height:18px}.calculation_table{height:90%;overflow-y:scroll}.footer_section{height:10%;display:flex;justify-content:space-between;align-items:center}.footer_title{font-size:18px;font-family:var(--primary-font-family);font-weight:500;color:#000}.total_container{background-color:#fff;padding:10px;font-size:20px;font-weight:500;font-family:var(--primary-semi-bold-font-family);color:#000}.calculation_single_part{background-color:#fff;padding:10px;border-radius:8px;margin-bottom:10px}.selected_single_term{margin-bottom:10px}.key{font-weight:500;font-size:14px;font-family:var(--primary-font-family);color:#3a3838;margin-left:30px}.fw-500{font-weight:500;font-family:var(--primary-semi-bold-font-family);font-size:16px;margin:0!important}.check_data{width:90%;margin:auto}.singleData{margin-bottom:10px}.singleData input{width:16px;height:16px}.singleData .data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.title{font-family:var(--primary-semi-bold-font-family);font-weight:500;font-size:15px;color:#000}.subscription_title{font-family:var(--primary-font-family);font-weight:500;font-size:14px;color:#000}.single_value{font-size:16px;font-family:var(--primary-semi-bold-font-family);color:#000;font-weight:500}.single_title input{width:16px;height:16px}.data_value{font-size:14px;font-family:var(--primary-font-family);color:#3a3838;font-weight:500}.top_1{background:#d2d4b999;padding:10px;box-shadow:0 0 2px #d3d3d3;border-radius:8px;margin-bottom:10px}.discounted_amount span,.original_amount{font-family:var(--primary-font-family);font-weight:500;font-size:13px}.img_sec{width:60px;height:60px;border-radius:50%;border:2px solid #0f9af1;font-size:18px;font-family:var(--primary-semi-bold-font-family);font-weight:500}.img_sec img{width:100%;height:100%;border-radius:50%}.selection input{width:16px;height:16px}.kit_title{font-size:14px;font-family:var(--primary-font-family);font-weight:500;color:#000}.kit_description{color:#434443;font-size:13px;font-family:var(--primary-font-family);font-weight:500}.paying_options label{font-size:14px;font-family:var(--primary-font-family);font-weight:500}.paying_options label input{width:16px;height:16px}.kit_bottom_layer{height:150px;overflow-y:scroll}.single_kit{background-color:#f2f2f9;padding:10px;border-radius:6px;width:32%}\n"] }]
2904
2994
  }], ctorParameters: () => [{ type: ElementServiceService }, { type: i2$2.MatSnackBar }], propDecorators: { admissionData: [{
2905
2995
  type: Input
2906
2996
  }], subscriptionsData: [{
@@ -5366,9 +5456,8 @@ class RestService {
5366
5456
  // this.subIndustryName = this.businessDetails.subIndustryName;
5367
5457
  // this.isJewellery = this.subIndustryName == 'Ecommerce Jewellery' ? true : false;
5368
5458
  // }
5369
- this.subIndustryName = localStorage.getItem("subIndustryName");
5459
+ this.subIndustryName = localStorage.getItem('subIndustryName');
5370
5460
  if (this.subIndustryName != null) {
5371
- this.subIndustryName = JSON.parse(this.subIndustryName);
5372
5461
  this.isJewellery = this.subIndustryName == 'Ecommerce Jewellery' ? true : false;
5373
5462
  }
5374
5463
  }
@@ -5614,6 +5703,9 @@ class RestService {
5614
5703
  createAdmission(payload) {
5615
5704
  return this.http.post(this.CMIS_URL + `crm/registration/admission?registrationId=${payload?.registrationId || ''}`, payload);
5616
5705
  }
5706
+ createPaymentLink(data) {
5707
+ return this.http.post(this.CMIS_URL + `crm/registration/admission/v2/payment?isFromWeb=true`, data);
5708
+ }
5617
5709
  createPaymentForAdmission(payload) {
5618
5710
  return this.http.post(this.CMIS_URL + `crm/registration/admission/payment`, payload);
5619
5711
  }
@@ -10751,6 +10843,7 @@ class RegistrationFormComponent extends BaseSection {
10751
10843
  "backupDoc": '',
10752
10844
  "paymentPlanType": 'ANNUALLY',
10753
10845
  "subscriptionPlans": [],
10846
+ "selectedComboKits": [],
10754
10847
  "admissionPaymentDetail": {
10755
10848
  "amount": 0,
10756
10849
  "paymentDate": new Date(),
@@ -10821,6 +10914,27 @@ class RegistrationFormComponent extends BaseSection {
10821
10914
  element.isDisplay = true;
10822
10915
  }
10823
10916
  });
10917
+ fieldData?.data.forEach((element) => {
10918
+ if (element.dataSourceType === 'COUNTRY') {
10919
+ element.isDisplay = false;
10920
+ }
10921
+ });
10922
+ fieldData?.data.forEach((element) => {
10923
+ const hasSiblingsGroup = Array.isArray(element.fieldGroup) && element.fieldGroup.some((group) => group.fieldGroupName?.toLowerCase().includes("siblings details"));
10924
+ if (hasSiblingsGroup) {
10925
+ const labelCheck = element.fieldLabel?.includes('1');
10926
+ const valueCheck = !!element.fieldValue;
10927
+ element.isDisplay = labelCheck || valueCheck;
10928
+ }
10929
+ });
10930
+ fieldData.data.forEach((element) => {
10931
+ const hasSiblingsGroup = Array.isArray(element.fieldGroup) && element.fieldGroup.some((group) => group.fieldGroupName?.toLowerCase().includes("past school details"));
10932
+ if (hasSiblingsGroup) {
10933
+ const labelCheck = element.fieldLabel?.includes('1');
10934
+ const valueCheck = !!element.fieldValue;
10935
+ element.isDisplay = labelCheck || valueCheck;
10936
+ }
10937
+ });
10824
10938
  this.formStatus = admissionData.status;
10825
10939
  // this.payload = admissionData;
10826
10940
  this.payload['documents'] = [];
@@ -10947,6 +11061,14 @@ class RegistrationFormComponent extends BaseSection {
10947
11061
  element.isDisplay = labelCheck || valueCheck;
10948
11062
  }
10949
11063
  });
11064
+ res.data.data.forEach((element) => {
11065
+ const hasSiblingsGroup = Array.isArray(element.fieldGroup) && element.fieldGroup.some((group) => group.fieldGroupName?.toLowerCase().includes("past school details"));
11066
+ if (hasSiblingsGroup) {
11067
+ const labelCheck = element.fieldLabel?.includes('1');
11068
+ const valueCheck = !!element.fieldValue;
11069
+ element.isDisplay = labelCheck || valueCheck;
11070
+ }
11071
+ });
10950
11072
  this.fieldData = this.restService.getFieldsToDisplay(res.data.data);
10951
11073
  this.selectedKey = this.Object.keys(this.fieldData)[0];
10952
11074
  });
@@ -10984,7 +11106,7 @@ class RegistrationFormComponent extends BaseSection {
10984
11106
  // this.payload['returnUrl'] = `https://stage.cmis.tejsoft.com/verify-payment/?url=true&type=REGISTRATION&bId=${this.businessId}` //stage
10985
11107
  for (let infieldDocument of this.payload.fieldItems) {
10986
11108
  if (infieldDocument.fieldImageUrl) {
10987
- let imageData = await this.imageUploadService.uploadFileInAzure(infieldDocument.fieldImageUrl);
11109
+ let imageData = await this.imageUploadService.uploadFileInAzure(infieldDocument.selectedImageData);
10988
11110
  infieldDocument.fieldImageUrl = imageData.url || imageData._response?.request?.url;
10989
11111
  }
10990
11112
  }
@@ -10994,11 +11116,11 @@ class RegistrationFormComponent extends BaseSection {
10994
11116
  });
10995
11117
  }
10996
11118
  async createAdmission() {
10997
- if (this.payload.paymentPlanType === 'TERM' && (this.payload?.studentFeeStructure?.termPaymentList?.length || 0) == 0) {
10998
- this.snackBar.open('Please select term');
10999
- return;
11000
- }
11001
- this.payload.studentFeeStructure['paymentPlanType'] = this.payload.paymentPlanType;
11119
+ // if(this.payload.paymentPlanType === 'TERM' && (this.payload?.studentFeeStructure?.termPaymentList?.length || 0) == 0){
11120
+ // this.snackBar.open('Please select term');
11121
+ // return;
11122
+ // }
11123
+ // this.payload.studentFeeStructure['paymentPlanType'] = this.payload.paymentPlanType;
11002
11124
  // this.payload['returnUrl'] = `https://cmis.tejsoft.com/verify-payment/?url=true&type=ADMISSION&bId=${this.businessId}`; //production
11003
11125
  this.payload['returnUrl'] = `https://stage-portal.cmis.ac.in/verify-payment/?url=true&type=ADMISSION&bId=${this.businessId}`; //dev
11004
11126
  // this.payload['returnUrl'] = `https://stage.cmis.tejsoft.com/verify-payment/?url=true&type=ADMISSION&bId=${this.businessId}`; //stage
@@ -11020,16 +11142,43 @@ class RegistrationFormComponent extends BaseSection {
11020
11142
  }
11021
11143
  for (let infieldDocument of this.payload.fieldItems) {
11022
11144
  if (infieldDocument.fieldImageUrl) {
11023
- let imageData = await this.imageUploadService.uploadFileInAzure(infieldDocument.fieldImageUrl);
11024
- infieldDocument.fieldImageUrl = imageData.url || imageData._response?.request?.url;
11145
+ if (!infieldDocument.fieldImageUrl.includes('https:')) {
11146
+ let imageData = await this.imageUploadService.uploadFileInAzure(infieldDocument.selectedImageData);
11147
+ infieldDocument.fieldImageUrl = imageData.url || imageData._response?.request?.url;
11148
+ }
11025
11149
  }
11026
11150
  }
11151
+ // console.log(this.payload)
11027
11152
  this.payload.admissionPaymentDetail.amount = this.payload.studentFeeStructureV2.totalFee;
11028
- this.registrationSubscription = this.restService.createPaymentForAdmission(this.payload).subscribe((res) => {
11153
+ this.registrationSubscription = this.restService.createAdmission(this.payload).subscribe((res) => {
11029
11154
  // this.snackBar.open('Admission created successfully', 'close', {duration: 2000});
11030
- this._eventService.cashFreeEvent.emit({ response: res, paymentType: 'ADMISSION' });
11155
+ let admissionData = res.data;
11156
+ let payload = {
11157
+ "mailPaymentLink": window.location.href,
11158
+ "feeSummaryId": admissionData.id,
11159
+ "name": this.fetchStudentDetails(admissionData.fieldItems, 'STUDENT_NAME'),
11160
+ "amount": admissionData.studentFeeStructureV2.totalFee,
11161
+ "mobile": this.fetchStudentDetails(admissionData.fieldItems, 'CONTACT_MOBILE'),
11162
+ "email": this.fetchStudentDetails(admissionData.fieldItems, 'CONTACT_EMAIL'),
11163
+ "feeConfig": admissionData.studentFeeStructureV2.feeConfig,
11164
+ "preAdmissionId": admissionData.id,
11165
+ "selectedStopDetail": admissionData.selectedStopDetail,
11166
+ "subscriptionPlans": admissionData.subscriptionPlans
11167
+ };
11168
+ this.restService.createPaymentLink(payload).subscribe((res) => {
11169
+ localStorage.removeItem('selectedStop');
11170
+ localStorage.removeItem('selectedVehicle');
11171
+ this._eventService.cashFreeEvent.emit({ response: res, paymentType: 'ADMISSION' });
11172
+ });
11031
11173
  });
11032
11174
  }
11175
+ fetchStudentDetails(array, getType) {
11176
+ const element = array.find((el) => el.type === getType);
11177
+ if (element) {
11178
+ return element.fieldValue;
11179
+ }
11180
+ return '';
11181
+ }
11033
11182
  convertToListOfFields() {
11034
11183
  let fieldList = [];
11035
11184
  for (let step of this.Object.keys(this.fieldData)) {
@@ -11037,7 +11186,7 @@ class RegistrationFormComponent extends BaseSection {
11037
11186
  if (group == 'Backup Contact' && this.studentLiveWith != 'single parent')
11038
11187
  continue;
11039
11188
  for (let field of this.fieldData[step][group]) {
11040
- if (field.required && !field.fieldValue && field.dataType != 'CHECKBOX') {
11189
+ if (field.required && !field.fieldValue && field.dataType != 'CHECKBOX' && !field.fieldImageUrl) {
11041
11190
  this.snackBar.open(`Please enter ${field.fieldLabel}`, 'close', { duration: 2000 });
11042
11191
  return [];
11043
11192
  }
@@ -11058,7 +11207,9 @@ class RegistrationFormComponent extends BaseSection {
11058
11207
  fieldStepId: field.fieldStepId,
11059
11208
  fieldStepName: step,
11060
11209
  type: field.type,
11061
- fieldImageUrl: field.fieldImageUrl
11210
+ fieldImageUrl: field.fieldImageUrl,
11211
+ selectedImageData: field.selectedImageData,
11212
+ dataType: field?.dataType
11062
11213
  });
11063
11214
  }
11064
11215
  }
@@ -11084,12 +11235,14 @@ class RegistrationFormComponent extends BaseSection {
11084
11235
  return response;
11085
11236
  }
11086
11237
  updateAdmissionImage(ev) {
11087
- this.fileData = ev.srcElement.files[0];
11238
+ let fileInput = ev.target;
11239
+ this.fileData = fileInput.files[0];
11088
11240
  const reader = new FileReader();
11089
11241
  reader.onload = (response) => {
11090
11242
  this.payload.imgUrl = response.target.result;
11091
11243
  };
11092
11244
  this.fileData ? reader.readAsDataURL(this.fileData) : null;
11245
+ fileInput.value = '';
11093
11246
  }
11094
11247
  deleteImg() {
11095
11248
  this.payload.imgUrl = '';
@@ -11117,6 +11270,7 @@ class RegistrationFormComponent extends BaseSection {
11117
11270
  getFeeStructure() {
11118
11271
  if (!this.selectedAcademicYear || !this.selectedGradeId)
11119
11272
  return;
11273
+ localStorage.setItem('gId', this.selectedGradeId);
11120
11274
  let payload = {
11121
11275
  // "businessId": this.businessId,
11122
11276
  // "startYear": Number(year[0]),
@@ -11279,7 +11433,7 @@ class RegistrationFormComponent extends BaseSection {
11279
11433
  field.fieldImageUrl = response.target.result;
11280
11434
  };
11281
11435
  selectedImageData ? reader.readAsDataURL(selectedImageData) : null;
11282
- field.fieldImageUrl = selectedImageData;
11436
+ field.selectedImageData = selectedImageData;
11283
11437
  }
11284
11438
  updateSelectedImage(ev, field) {
11285
11439
  let selectedImageData;
@@ -11289,7 +11443,7 @@ class RegistrationFormComponent extends BaseSection {
11289
11443
  field.fieldImageUrl = response.target.result;
11290
11444
  };
11291
11445
  selectedImageData ? reader.readAsDataURL(selectedImageData) : null;
11292
- field.fieldImageUrl = selectedImageData;
11446
+ field.selectedImageData = selectedImageData;
11293
11447
  }
11294
11448
  isImage(fileUrl) {
11295
11449
  return typeof fileUrl === 'string' && (fileUrl.startsWith('data:image') || /\.(jpg|jpeg|png|gif)$/i.test(fileUrl));
@@ -11329,6 +11483,12 @@ class RegistrationFormComponent extends BaseSection {
11329
11483
  });
11330
11484
  item.fieldValue = '';
11331
11485
  }
11486
+ if (exactAge < 6) {
11487
+ this.snackBar.open('Student below 6 years is not eligible for CBSE admission.', 'Ok', {
11488
+ duration: 3500
11489
+ });
11490
+ item.fieldValue = '';
11491
+ }
11332
11492
  }
11333
11493
  if (fieldGroupName.some((name) => name.includes('mother'))) {
11334
11494
  const age = today.getFullYear() - enteredDate.getFullYear();
@@ -11428,7 +11588,7 @@ class RegistrationFormComponent extends BaseSection {
11428
11588
  });
11429
11589
  }
11430
11590
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RegistrationFormComponent, deps: [{ token: RestService }, { token: i2$2.MatSnackBar }, { token: EventsService }, { token: i2$4.ActivatedRoute }, { token: i1$1.DomSanitizer }, { token: ImageUplaodService }], target: i0.ɵɵFactoryTarget.Component }); }
11431
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RegistrationFormComponent, isStandalone: true, selector: "simpo-registration-form", inputs: { data: "data", index: "index", edit: "edit", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\n [simpoBorder]=\"styles?.border\">\n <div class=\"main-section\"\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"body-section\">\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\n <div>\n <simpo-text-element [textData]=\"content?.inputText?.[0]?.value\" [textLabel]=\"content?.inputText?.[0]?.label\"></simpo-text-element>\n </div>\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\n ]\">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <section class=\"main-section\">\n <div *ngIf=\"formStatus != 'REGISTERED' && formStatus != 'ADMITTED'\">\n <div class=\"subTabs_section\">\n <div class=\"list_tabs d-flex align-items-center\">\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\n {{key | titlecase}}\n </div>\n </ng-container>\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = 'Document'\" *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Document' ? 'single_tab_active' : 'single_tab'\">\n Document\n </div>\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\n *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\n Payment\n </div>\n </div>\n </div>\n\n <div class=\"main-content\">\n <ng-container *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : [];let groupIndex = index\">\n <div class=\"body\" *ngIf=\"group !== 'Backup Contact'\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n {{group}}\n </div>\n\n <ng-container *ngIf=\"groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"image-box\" *ngIf=\"!payload.imgUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput.click()\" alt=\"\">\n <div class=\"image_box\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\"image/x-png,image/jpeg,image/jpg\" (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #fileInput />\n\n <div *ngIf=\"payload.imgUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(payload.imgUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n\n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n\n </div>\n </div>\n\n </div>\n </ng-container>\n\n <!-- <div class=\"row mt-1\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\" *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div> -->\n <div class=\"row mt-1\" *ngIf=\"group != 'Siblings Details' && group != 'Past school Details'\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div\n [ngClass]=\"(info.type === 'FATHER_IMAGE' || info.type === 'MOTHER_IMAGE' || info.type === 'GUARDIAN_IMAGE') ? 'col-md-12 col-12' : 'col-md-4 col-12 mt-1'\"\n *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{returnDisplayText(info.displayText || info.fieldLabel)}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div class=\"\" *ngIf=\"group === 'Siblings Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfSiblings(fieldData['Family Details']['Siblings Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfSiblings(fieldData['Family Details']['Siblings Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <!-- <div class=\"border_bottom\" *ngIf=\"i >= 1\"></div> -->\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Siblings Details' && showAddSiblingsButton()\">\n <button (click)=\"addSibling(nextSiblingNumber)\" class=\"add_sibling\">+ Add Sibling {{ nextSiblingNumber\n }}</button>\n </div>\n </div>\n <div class=\"\" *ngIf=\"group === 'Past school Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Past school Details' && showAddPastSchoolButton()\">\n <button (click)=\"addPastSchool(nextPastSchoolNumber)\" class=\"add_sibling\">+ Add Past School {{ nextPastSchoolNumber}}</button>\n </div>\n </div>\n </div>\n\n <div class=\"body\" *ngIf=\"fieldData[selectedKey].hasOwnProperty('Backup Contact') && studentLiveWith === 'single parent' && groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n Backup Contact (Optional)\n </div>\n\n <div class=\"row mt-1\">\n <div class=\"col-md-12\">\n <label class=\"mtb-15 checkbox-label\">\n <input type=\"checkbox\" name=\"\" id=\"\" [(ngModel)]=\"payload.parentAuthorization\">\n I authorize the school to release the child only to the parent listed above\n </label>\n </div>\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey]['Backup Contact']\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\n </div>\n <div class=\"col-md-4 col-12 mt-1\">\n <label for=\"\" class=\"label-text\">Upload Supporting Document (Optional)</label>\n <div class=\"input-text upload-file\" (click)=\"backUpDocInput.click()\">\n <p>{{backupDocFile ? 'File Uploaded' : 'Upload File'}}</p>\n <mat-icon>cloud_upload</mat-icon>\n </div>\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"uploadBackUpDocument($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #backUpDocInput />\n </div>\n </div>\n </div>\n\n </ng-container>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Document' && data?.sectionType === 'admissionForm'\">\n <simpo-document [documentList]=\"documentList\"></simpo-document>\n </div>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\n <simpo-payment-details [admissionData]=\"payload\"\n [subscriptionsData]=\"subscriptionsData\" [termPaymentList]=\"termPaymentList\"></simpo-payment-details>\n </div>\n </div>\n\n <div class=\"button-parent\">\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\n (data?.sectionType === 'registrationForm' &&\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\"\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n </ng-container>\n </div>\n </div>\n\n <div class=\"emptyText\" *ngIf=\"formStatus == 'REGISTERED' || formStatus == 'ADMITTED'\">\n <img [src]=\"content?.image?.url\" alt=\"\" *ngIf=\"content?.image?.showImage\">\n <div class=\"heading-large\" [innerHtml]=\"content?.inputText?.[1]?.value\"></div>\n </div>\n </section>\n\n <ng-template #inputData let-field=\"data\" let-group=\"group\">\n <div *ngIf=\"field.dataType == 'IMAGE'\">\n <div class=\"image-box\" *ngIf=\"!field.fieldImageUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput2.click()\" alt=\"\">\n <div class=\"d-flex align-items-center\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput2.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\n (change)=\"uploadParentGuardinaImages($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput2 />\n <div *ngIf=\"field.fieldImageUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput2.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n \n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n \n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'TEXT' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'NUMBER' && field.isDisplay\">\n <input type=\"number\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'MONEY' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n </div>\n <div *ngIf=\"field.dataType === 'DATE' && field.isDisplay\">\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\" [placeholder]=\"'Select '+field.fieldLabel\" [max]=\"getMaxDate(field)\"\n (input)=\"checkDob(field)\">\n </div>\n <div class=\"input-container\" *ngIf=\"field.dataType === 'TEXT_FILE' && field.isDisplay\">\n <input matInput class=\"input-text-1\" [(ngModel)]=\"field.fieldValue\" style=\"width:90%\">\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"!field.fieldImageUrl\"\n style=\"width:10%\">\n <mat-icon (click)=\"fileInput1.click()\"\n class=\"dummy-image-1 w-100 d-flex justify-content-center\">cloud_upload</mat-icon>\n </div>\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"field.fieldImageUrl\" style=\"width:10%\">\n <!-- If the uploaded file is an image, show the preview -->\n <img\n *ngIf=\"isImage(field.fieldImageUrl)\"\n alt=\"\"\n class=\"w-100 h-100\"\n [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\"\n (click)=\"fileInput1.click()\" />\n \n <!-- If the uploaded file is not an image, show a file icon -->\n <mat-icon\n *ngIf=\"!isImage(field.fieldImageUrl)\"\n class=\"w-100 d-flex justify-content-center align-items-center dummy-image-1\"\n (click)=\"fileInput1.click()\">insert_drive_file</mat-icon>\n </div>\n \n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"updateSelectedImage($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput1 />\n </div>\n <div *ngIf=\"field.dataType === 'DROPDOWN' && field.isDisplay\" class=\"admission\">\n <mat-form-field class=\"input-text-1 input_card\" appearance=\"outline\" style=\"width:100%\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\" [multiple]=\"field.multipleSelection\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\" (click)=\"masterDropdownValueChange(item, field)\">{{item.label}}</mat-option>\n </ng-container>\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"field.dataType === 'CHECKBOX' && field.isDisplay\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.label}}\n </label>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.sourceData[field.dataSourceType]\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.name}}\n </label>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"field.dataType === 'RADIOBUTTON' && field.isDisplay\">\n <div style=\"display: flex; gap: 20px; margin-top: 10px; height: 35px;align-items: center;\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <!-- <div class=\" mb-5\" *ngFor=\"let data of field.value\">\n <mat-radio-button [value]=\"data.value\" [(ngModel)]=\"field.fieldValue\">{{data.label}}</mat-radio-button>\n </div> -->\n <mat-radio-group [(ngModel)]=\"field.fieldValue\" (change)=\"radioButtonChanged(field,selectedKey,group)\">\n <mat-radio-button *ngFor=\"let data of field.value\" [value]=\"data.value\">\n {{ data.label }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n \n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"data.name\" [(ngModel)]=\"field.fieldValue\" />\n \n <label class=\"form-check-label\" [for]=\"'radio_' + data.name\">\n {{ data.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-template>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n</section>\n", styles: [".total_container{height:auto;position:relative}.body-section{padding:4% 15px}.button-section{margin-top:15px}.clipPath{clip-path:polygon(0% 100%,50% 0%,100% 100%);height:100px;background-color:#00f}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.mt-15{margin-top:15px}@media only screen and (max-width: 475px){.d-flex{justify-content:center;margin-bottom:25px}}.main-section{width:100%;overflow-y:hidden}.subTabs_section{padding:1rem 5rem;height:12vh}.active_route_section{height:89%;border:1px solid #0000000F;padding:15px 20px;background-color:#fff;border-radius:6px}.active_route_section_normal{background-color:#f6f6f6;border:none;padding:10px 4rem}.list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.single_tab{color:#0e233c99;font-size:14px;font-weight:500;font-family:interReg;padding:10px 20px}.single_tab_active{width:max-content;height:32px;background-color:#0015800a;display:flex;align-items:center;font-weight:600;padding:10px 20px;border-radius:4px;color:#0e233c}.align-items-center{align-items:center}.header{height:8vh;padding:10px;border-bottom:2px solid rgba(0,0,0,.06);display:flex}.p-5{padding:5rem}.backToLeads{color:#000!important}.body{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;padding:2rem;border-radius:10px}.profile-img{display:flex;align-items:center;gap:2rem}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.image-box{display:flex;gap:1rem;margin-top:3rem;cursor:pointer}.image-box span{color:#0189ea;font-size:14px;font-weight:500;padding:11px 7rem;border:2px solid rgba(0,0,0,.06);height:47px;border-radius:10px}.image_box{display:flex;align-items:center}.dummy-image{height:55px}.label-text{font-weight:400;font-family:Inter;font-size:14px;color:#434443}.input-text{border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.footer{display:flex;gap:1rem;align-items:center;justify-content:flex-end;height:8vh;padding:10px;border-top:2px solid rgba(0,0,0,.06);position:absolute;bottom:0;width:100%}.footer .continue{font-size:13px;font-family:interMedium;color:#242424;font-weight:500;border:none;background-color:#f6c318;padding:10px 20px;border-radius:8px;width:max-content}.footer .cancel{font-size:13px;font-family:interMedium;color:#f6c318;font-weight:500;border:1px solid #F6C318;background-color:#fff;padding:10px 20px;border-radius:8px;width:max-content}.main-content{overflow:scroll;padding-top:5px;padding-bottom:10px}.button-parent{padding:1rem 5rem 1rem 2rem;align-items:center;display:flex;justify-content:flex-end}.button{font-size:16px!important;padding:1rem 2rem;display:inline-flex;align-items:center;justify-content:center;width:fit-content!important}.payment-details{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;border-radius:10px}.mb-5{margin-bottom:5px!important}.addedImg{display:flex;gap:5%;width:95%;margin-top:2rem}.addedImg .uploadedImg img{height:65px;width:65px;border-radius:50%}.addedImg .image-buttons{display:flex;gap:3%;padding-top:20px}.addedImg .image-buttons .button{display:flex;gap:8px;width:142px;height:40px;padding:12px 8px;font-family:lexandMedium;color:#3f3b3b;font-style:normal;font-weight:500;font-size:12px!important;border:1px dashed #E4E7EC;border-radius:12px;cursor:pointer}.addedImg .image-buttons .button img{width:20px}.addedImg .image-buttons .button .delete{display:flex;gap:15%;width:60%;margin:auto}.addedImg .image-buttons .button .delete img{width:12px}.emptyText{height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:50px}.emptyText img{height:200px}@media screen and (max-width: 475px){.body{margin:0rem}.emptyText{padding:1rem}.emptyText img{width:100%}.subTabs_section{padding:1rem .5rem}.list_tabs{white-space:nowrap;overflow:scroll;justify-content:flex-start}.payment-details{margin:0rem}}.mtb-15{margin-top:15px;margin-bottom:15px}.checkbox-label{display:flex;align-items:center;gap:15px}.checkbox-label input{height:16px;width:16px}.upload-file{display:flex;align-items:center;justify-content:space-between;padding-right:10px}.upload-file mat-icon{color:#4caf50}.upload-file p{margin-bottom:0}@media only screen and (min-width: 320px) and (max-width : 500px){.image-box span{padding:11px 4rem}}mat-form-field{border:1px solid 2px solid rgba(208,213,221,1);border-radius:8px}.input-container{display:flex;border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.input-container input:focus{outline:none}.input-text-1{border:none}.image-box-1{display:flex;cursor:pointer;border-left:1px solid rgba(208,213,221,1)}.dummy-image-1{font-size:20px;color:green}.error{font-size:12px;font-family:var(--primary-font-family);color:red;margin-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatGridListModule }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: TextElementComponent, selector: "simpo-text-element", inputs: ["textData", "textLabel"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: PaymentDetailsComponent, selector: "simpo-payment-details", inputs: ["admissionData", "subscriptionsData", "termPaymentList"] }, { kind: "component", type: DocumentComponent, selector: "simpo-document", inputs: ["documentList"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
11591
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RegistrationFormComponent, isStandalone: true, selector: "simpo-registration-form", inputs: { data: "data", index: "index", edit: "edit", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\n [simpoBorder]=\"styles?.border\">\n <div class=\"main-section\"\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"body-section\">\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\n <div>\n <simpo-text-element [textData]=\"content?.inputText?.[0]?.value\" [textLabel]=\"content?.inputText?.[0]?.label\"></simpo-text-element>\n </div>\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\n ]\">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <section class=\"main-section\">\n <div *ngIf=\"formStatus != 'REGISTERED' && formStatus != 'ADMITTED'\">\n <div class=\"subTabs_section\">\n <div class=\"list_tabs d-flex align-items-center\">\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\n {{key | titlecase}}\n </div>\n </ng-container>\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = 'Document'\" *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Document' ? 'single_tab_active' : 'single_tab'\">\n Document\n </div>\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\n *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\n Payment\n </div>\n </div>\n </div>\n\n <div class=\"main-content\">\n <ng-container *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : [];let groupIndex = index\">\n <div class=\"body\" *ngIf=\"group !== 'Backup Contact'\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n {{group}}\n </div>\n\n <ng-container *ngIf=\"groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"image-box\" *ngIf=\"!payload.imgUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput.click()\" alt=\"\">\n <div class=\"image_box\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\"image/x-png,image/jpeg,image/jpg\" (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #fileInput />\n\n <div *ngIf=\"payload.imgUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(payload.imgUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n\n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n\n </div>\n </div>\n\n </div>\n </ng-container>\n\n <!-- <div class=\"row mt-1\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\" *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div> -->\n <div class=\"row mt-1\" *ngIf=\"group != 'Siblings Details' && group != 'Past school Details'\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div\n [ngClass]=\"(info.type === 'FATHER_IMAGE' || info.type === 'MOTHER_IMAGE' || info.type === 'GUARDIAN_IMAGE') ? 'col-md-12 col-12' : 'col-md-4 col-12 mt-1'\"\n *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{returnDisplayText(info.displayText || info.fieldLabel)}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div class=\"\" *ngIf=\"group === 'Siblings Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfSiblings(fieldData['Family Details']['Siblings Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfSiblings(fieldData['Family Details']['Siblings Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <!-- <div class=\"border_bottom\" *ngIf=\"i >= 1\"></div> -->\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Siblings Details' && showAddSiblingsButton()\">\n <button (click)=\"addSibling(nextSiblingNumber)\" class=\"add_sibling\" style=\"width:max-content !important\">+ Add Sibling {{ nextSiblingNumber\n }}</button>\n </div>\n </div>\n <div class=\"\" *ngIf=\"group === 'Past school Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Past school Details' && showAddPastSchoolButton()\">\n <button (click)=\"addPastSchool(nextPastSchoolNumber)\" class=\"add_sibling\"\n style=\"width:max-content !important\">+ Add Past School {{ nextPastSchoolNumber}}</button>\n </div>\n </div>\n </div>\n\n <div class=\"body\" *ngIf=\"fieldData[selectedKey].hasOwnProperty('Backup Contact') && studentLiveWith === 'single parent' && groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n Backup Contact (Optional)\n </div>\n\n <div class=\"row mt-1\">\n <div class=\"col-md-12\">\n <label class=\"mtb-15 checkbox-label\">\n <input type=\"checkbox\" name=\"\" id=\"\" [(ngModel)]=\"payload.parentAuthorization\">\n I authorize the school to release the child only to the parent listed above\n </label>\n </div>\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey]['Backup Contact']\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\n </div>\n <div class=\"col-md-4 col-12 mt-1\">\n <label for=\"\" class=\"label-text\">Upload Supporting Document (Optional)</label>\n <div class=\"input-text upload-file\" (click)=\"backUpDocInput.click()\">\n <p>{{backupDocFile ? 'File Uploaded' : 'Upload File'}}</p>\n <mat-icon>cloud_upload</mat-icon>\n </div>\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"uploadBackUpDocument($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #backUpDocInput />\n </div>\n </div>\n </div>\n\n </ng-container>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Document' && data?.sectionType === 'admissionForm'\">\n <simpo-document [documentList]=\"documentList\"></simpo-document>\n </div>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\n <simpo-payment-details [admissionData]=\"payload\"\n [subscriptionsData]=\"subscriptionsData\" [termPaymentList]=\"termPaymentList\"></simpo-payment-details>\n </div>\n </div>\n\n <div class=\"button-parent\">\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\n (data?.sectionType === 'registrationForm' &&\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\"\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n </ng-container>\n </div>\n </div>\n\n <div class=\"emptyText\" *ngIf=\"formStatus == 'REGISTERED' || formStatus == 'ADMITTED'\">\n <img [src]=\"content?.image?.url\" alt=\"\" *ngIf=\"content?.image?.showImage\">\n <div class=\"heading-large\" [innerHtml]=\"content?.inputText?.[1]?.value\"></div>\n </div>\n </section>\n\n <ng-template #inputData let-field=\"data\" let-group=\"group\">\n <div *ngIf=\"field.dataType == 'IMAGE'\">\n <div class=\"image-box\" *ngIf=\"!field.fieldImageUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput2.click()\" alt=\"\">\n <div class=\"d-flex align-items-center\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput2.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\n (change)=\"uploadParentGuardinaImages($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput2 />\n <div *ngIf=\"field.fieldImageUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput2.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n \n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n \n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'TEXT' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'NUMBER' && field.isDisplay\">\n <input type=\"number\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'MONEY' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n </div>\n <div *ngIf=\"field.dataType === 'DATE' && field.isDisplay\">\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\" [placeholder]=\"'Select '+field.fieldLabel\" [max]=\"getMaxDate(field)\"\n (input)=\"checkDob(field)\">\n </div>\n <div class=\"input-container\" *ngIf=\"field.dataType === 'TEXT_FILE' && field.isDisplay\">\n <input matInput class=\"input-text-1\" [(ngModel)]=\"field.fieldValue\" style=\"width:90%\">\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"!field.fieldImageUrl\"\n style=\"width:10%\">\n <mat-icon (click)=\"fileInput1.click()\"\n class=\"dummy-image-1 w-100 d-flex justify-content-center\">cloud_upload</mat-icon>\n </div>\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"field.fieldImageUrl\" style=\"width:10%\">\n <!-- If the uploaded file is an image, show the preview -->\n <img\n *ngIf=\"isImage(field.fieldImageUrl)\"\n alt=\"\"\n class=\"w-100 h-100\"\n [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\"\n (click)=\"fileInput1.click()\" />\n \n <!-- If the uploaded file is not an image, show a file icon -->\n <mat-icon\n *ngIf=\"!isImage(field.fieldImageUrl)\"\n class=\"w-100 d-flex justify-content-center align-items-center dummy-image-1\"\n (click)=\"fileInput1.click()\">insert_drive_file</mat-icon>\n </div>\n \n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"updateSelectedImage($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput1 />\n </div>\n <div *ngIf=\"field.dataType === 'DROPDOWN' && field.isDisplay\" class=\"admission\">\n <mat-form-field class=\"input-text-1 input_card\" appearance=\"outline\" style=\"width:100%\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\" [multiple]=\"field.multipleSelection\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\" (click)=\"masterDropdownValueChange(item, field)\">{{item.label}}</mat-option>\n </ng-container>\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"field.dataType === 'CHECKBOX' && field.isDisplay\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.label}}\n </label>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.sourceData[field.dataSourceType]\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.name}}\n </label>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"field.dataType === 'RADIOBUTTON' && field.isDisplay\">\n <div style=\"display: flex; gap: 20px; margin-top: 10px; height: 35px;align-items: center;\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <!-- <div class=\" mb-5\" *ngFor=\"let data of field.value\">\n <mat-radio-button [value]=\"data.value\" [(ngModel)]=\"field.fieldValue\">{{data.label}}</mat-radio-button>\n </div> -->\n <mat-radio-group [(ngModel)]=\"field.fieldValue\" (change)=\"radioButtonChanged(field,selectedKey,group)\">\n <mat-radio-button *ngFor=\"let data of field.value\" [value]=\"data.value\">\n {{ data.label }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n \n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"data.name\" [(ngModel)]=\"field.fieldValue\" />\n \n <label class=\"form-check-label\" [for]=\"'radio_' + data.name\">\n {{ data.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-template>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n</section>\n", styles: [".total_container{height:auto;position:relative}.body-section{padding:4% 15px}.button-section{margin-top:15px}.clipPath{clip-path:polygon(0% 100%,50% 0%,100% 100%);height:100px;background-color:#00f}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.mt-15{margin-top:15px}@media only screen and (max-width: 475px){.d-flex{justify-content:center;margin-bottom:25px}}.main-section{width:100%;overflow-y:hidden}.subTabs_section{padding:1rem 5rem;height:12vh}.active_route_section{height:89%;border:1px solid #0000000F;padding:15px 20px;background-color:#fff;border-radius:6px}.active_route_section_normal{background-color:#f6f6f6;border:none;padding:10px 4rem}.list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.single_tab{color:#0e233c99;font-size:14px;font-weight:500;font-family:interReg;padding:10px 20px}.single_tab_active{width:max-content;height:32px;background-color:#0015800a;display:flex;align-items:center;font-weight:600;padding:10px 20px;border-radius:4px;color:#0e233c}.align-items-center{align-items:center}.header{height:8vh;padding:10px;border-bottom:2px solid rgba(0,0,0,.06);display:flex}.p-5{padding:5rem}.backToLeads{color:#000!important}.body{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;padding:2rem;border-radius:10px}.profile-img{display:flex;align-items:center;gap:2rem}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.image-box{display:flex;gap:1rem;margin-top:3rem;cursor:pointer}.image-box span{color:#0189ea;font-size:14px;font-weight:500;padding:11px 7rem;border:2px solid rgba(0,0,0,.06);height:47px;border-radius:10px}.image_box{display:flex;align-items:center}.dummy-image{height:55px}.label-text{font-weight:400;font-family:Inter;font-size:14px;color:#434443}.input-text{border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.footer{display:flex;gap:1rem;align-items:center;justify-content:flex-end;height:8vh;padding:10px;border-top:2px solid rgba(0,0,0,.06);position:absolute;bottom:0;width:100%}.footer .continue{font-size:13px;font-family:interMedium;color:#242424;font-weight:500;border:none;background-color:#f6c318;padding:10px 20px;border-radius:8px;width:max-content}.footer .cancel{font-size:13px;font-family:interMedium;color:#f6c318;font-weight:500;border:1px solid #F6C318;background-color:#fff;padding:10px 20px;border-radius:8px;width:max-content}.main-content{overflow:scroll;padding-top:5px;padding-bottom:10px}.button-parent{padding:1rem 5rem 1rem 2rem;align-items:center;display:flex;justify-content:flex-end}.button{font-size:16px!important;padding:1rem 2rem;display:inline-flex;align-items:center;justify-content:center;width:fit-content!important}.payment-details{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;border-radius:10px}.mb-5{margin-bottom:5px!important}.addedImg{display:flex;gap:5%;width:95%;margin-top:2rem}.addedImg .uploadedImg img{height:65px;width:65px;border-radius:50%}.addedImg .image-buttons{display:flex;gap:3%;padding-top:20px}.addedImg .image-buttons .button{display:flex;gap:8px;width:142px;height:40px;padding:12px 8px;font-family:lexandMedium;color:#3f3b3b;font-style:normal;font-weight:500;font-size:12px!important;border:1px dashed #E4E7EC;border-radius:12px;cursor:pointer}.addedImg .image-buttons .button img{width:20px}.addedImg .image-buttons .button .delete{display:flex;gap:15%;width:60%;margin:auto}.addedImg .image-buttons .button .delete img{width:12px}.emptyText{height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:50px}.emptyText img{height:200px}@media screen and (max-width: 475px){.body{margin:0rem}.emptyText{padding:1rem}.emptyText img{width:100%}.subTabs_section{padding:1rem .5rem}.list_tabs{white-space:nowrap;overflow:scroll;justify-content:flex-start}.payment-details{margin:0rem}}.mtb-15{margin-top:15px;margin-bottom:15px}.checkbox-label{display:flex;align-items:center;gap:15px}.checkbox-label input{height:16px;width:16px}.upload-file{display:flex;align-items:center;justify-content:space-between;padding-right:10px}.upload-file mat-icon{color:#4caf50}.upload-file p{margin-bottom:0}@media only screen and (min-width: 320px) and (max-width : 500px){.image-box span{padding:11px 4rem}}mat-form-field{border:1px solid 2px solid rgba(208,213,221,1);border-radius:8px}.input-container{display:flex;border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.input-container input:focus{outline:none}.input-text-1{border:none}.image-box-1{display:flex;cursor:pointer;border-left:1px solid rgba(208,213,221,1)}.dummy-image-1{font-size:20px;color:green}.error{font-size:12px;font-family:var(--primary-font-family);color:red;margin-top:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: MatGridListModule }, { kind: "ngmodule", type: SimpoElementsModule }, { kind: "component", type: TextElementComponent, selector: "simpo-text-element", inputs: ["textData", "textLabel"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: PaymentDetailsComponent, selector: "simpo-payment-details", inputs: ["admissionData", "subscriptionsData", "termPaymentList"] }, { kind: "component", type: DocumentComponent, selector: "simpo-document", inputs: ["documentList"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
11432
11592
  //directive
11433
11593
  AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i13.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i7$2.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$2.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }] }); }
11434
11594
  }
@@ -11453,7 +11613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
11453
11613
  FormsModule,
11454
11614
  MatIconModule,
11455
11615
  MatRadioModule
11456
- ], template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\n [simpoBorder]=\"styles?.border\">\n <div class=\"main-section\"\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"body-section\">\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\n <div>\n <simpo-text-element [textData]=\"content?.inputText?.[0]?.value\" [textLabel]=\"content?.inputText?.[0]?.label\"></simpo-text-element>\n </div>\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\n ]\">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <section class=\"main-section\">\n <div *ngIf=\"formStatus != 'REGISTERED' && formStatus != 'ADMITTED'\">\n <div class=\"subTabs_section\">\n <div class=\"list_tabs d-flex align-items-center\">\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\n {{key | titlecase}}\n </div>\n </ng-container>\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = 'Document'\" *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Document' ? 'single_tab_active' : 'single_tab'\">\n Document\n </div>\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\n *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\n Payment\n </div>\n </div>\n </div>\n\n <div class=\"main-content\">\n <ng-container *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : [];let groupIndex = index\">\n <div class=\"body\" *ngIf=\"group !== 'Backup Contact'\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n {{group}}\n </div>\n\n <ng-container *ngIf=\"groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"image-box\" *ngIf=\"!payload.imgUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput.click()\" alt=\"\">\n <div class=\"image_box\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\"image/x-png,image/jpeg,image/jpg\" (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #fileInput />\n\n <div *ngIf=\"payload.imgUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(payload.imgUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n\n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n\n </div>\n </div>\n\n </div>\n </ng-container>\n\n <!-- <div class=\"row mt-1\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\" *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div> -->\n <div class=\"row mt-1\" *ngIf=\"group != 'Siblings Details' && group != 'Past school Details'\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div\n [ngClass]=\"(info.type === 'FATHER_IMAGE' || info.type === 'MOTHER_IMAGE' || info.type === 'GUARDIAN_IMAGE') ? 'col-md-12 col-12' : 'col-md-4 col-12 mt-1'\"\n *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{returnDisplayText(info.displayText || info.fieldLabel)}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div class=\"\" *ngIf=\"group === 'Siblings Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfSiblings(fieldData['Family Details']['Siblings Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfSiblings(fieldData['Family Details']['Siblings Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <!-- <div class=\"border_bottom\" *ngIf=\"i >= 1\"></div> -->\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Siblings Details' && showAddSiblingsButton()\">\n <button (click)=\"addSibling(nextSiblingNumber)\" class=\"add_sibling\">+ Add Sibling {{ nextSiblingNumber\n }}</button>\n </div>\n </div>\n <div class=\"\" *ngIf=\"group === 'Past school Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Past school Details' && showAddPastSchoolButton()\">\n <button (click)=\"addPastSchool(nextPastSchoolNumber)\" class=\"add_sibling\">+ Add Past School {{ nextPastSchoolNumber}}</button>\n </div>\n </div>\n </div>\n\n <div class=\"body\" *ngIf=\"fieldData[selectedKey].hasOwnProperty('Backup Contact') && studentLiveWith === 'single parent' && groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n Backup Contact (Optional)\n </div>\n\n <div class=\"row mt-1\">\n <div class=\"col-md-12\">\n <label class=\"mtb-15 checkbox-label\">\n <input type=\"checkbox\" name=\"\" id=\"\" [(ngModel)]=\"payload.parentAuthorization\">\n I authorize the school to release the child only to the parent listed above\n </label>\n </div>\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey]['Backup Contact']\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\n </div>\n <div class=\"col-md-4 col-12 mt-1\">\n <label for=\"\" class=\"label-text\">Upload Supporting Document (Optional)</label>\n <div class=\"input-text upload-file\" (click)=\"backUpDocInput.click()\">\n <p>{{backupDocFile ? 'File Uploaded' : 'Upload File'}}</p>\n <mat-icon>cloud_upload</mat-icon>\n </div>\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"uploadBackUpDocument($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #backUpDocInput />\n </div>\n </div>\n </div>\n\n </ng-container>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Document' && data?.sectionType === 'admissionForm'\">\n <simpo-document [documentList]=\"documentList\"></simpo-document>\n </div>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\n <simpo-payment-details [admissionData]=\"payload\"\n [subscriptionsData]=\"subscriptionsData\" [termPaymentList]=\"termPaymentList\"></simpo-payment-details>\n </div>\n </div>\n\n <div class=\"button-parent\">\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\n (data?.sectionType === 'registrationForm' &&\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\"\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n </ng-container>\n </div>\n </div>\n\n <div class=\"emptyText\" *ngIf=\"formStatus == 'REGISTERED' || formStatus == 'ADMITTED'\">\n <img [src]=\"content?.image?.url\" alt=\"\" *ngIf=\"content?.image?.showImage\">\n <div class=\"heading-large\" [innerHtml]=\"content?.inputText?.[1]?.value\"></div>\n </div>\n </section>\n\n <ng-template #inputData let-field=\"data\" let-group=\"group\">\n <div *ngIf=\"field.dataType == 'IMAGE'\">\n <div class=\"image-box\" *ngIf=\"!field.fieldImageUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput2.click()\" alt=\"\">\n <div class=\"d-flex align-items-center\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput2.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\n (change)=\"uploadParentGuardinaImages($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput2 />\n <div *ngIf=\"field.fieldImageUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput2.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n \n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n \n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'TEXT' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'NUMBER' && field.isDisplay\">\n <input type=\"number\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'MONEY' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n </div>\n <div *ngIf=\"field.dataType === 'DATE' && field.isDisplay\">\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\" [placeholder]=\"'Select '+field.fieldLabel\" [max]=\"getMaxDate(field)\"\n (input)=\"checkDob(field)\">\n </div>\n <div class=\"input-container\" *ngIf=\"field.dataType === 'TEXT_FILE' && field.isDisplay\">\n <input matInput class=\"input-text-1\" [(ngModel)]=\"field.fieldValue\" style=\"width:90%\">\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"!field.fieldImageUrl\"\n style=\"width:10%\">\n <mat-icon (click)=\"fileInput1.click()\"\n class=\"dummy-image-1 w-100 d-flex justify-content-center\">cloud_upload</mat-icon>\n </div>\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"field.fieldImageUrl\" style=\"width:10%\">\n <!-- If the uploaded file is an image, show the preview -->\n <img\n *ngIf=\"isImage(field.fieldImageUrl)\"\n alt=\"\"\n class=\"w-100 h-100\"\n [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\"\n (click)=\"fileInput1.click()\" />\n \n <!-- If the uploaded file is not an image, show a file icon -->\n <mat-icon\n *ngIf=\"!isImage(field.fieldImageUrl)\"\n class=\"w-100 d-flex justify-content-center align-items-center dummy-image-1\"\n (click)=\"fileInput1.click()\">insert_drive_file</mat-icon>\n </div>\n \n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"updateSelectedImage($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput1 />\n </div>\n <div *ngIf=\"field.dataType === 'DROPDOWN' && field.isDisplay\" class=\"admission\">\n <mat-form-field class=\"input-text-1 input_card\" appearance=\"outline\" style=\"width:100%\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\" [multiple]=\"field.multipleSelection\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\" (click)=\"masterDropdownValueChange(item, field)\">{{item.label}}</mat-option>\n </ng-container>\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"field.dataType === 'CHECKBOX' && field.isDisplay\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.label}}\n </label>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.sourceData[field.dataSourceType]\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.name}}\n </label>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"field.dataType === 'RADIOBUTTON' && field.isDisplay\">\n <div style=\"display: flex; gap: 20px; margin-top: 10px; height: 35px;align-items: center;\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <!-- <div class=\" mb-5\" *ngFor=\"let data of field.value\">\n <mat-radio-button [value]=\"data.value\" [(ngModel)]=\"field.fieldValue\">{{data.label}}</mat-radio-button>\n </div> -->\n <mat-radio-group [(ngModel)]=\"field.fieldValue\" (change)=\"radioButtonChanged(field,selectedKey,group)\">\n <mat-radio-button *ngFor=\"let data of field.value\" [value]=\"data.value\">\n {{ data.label }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n \n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"data.name\" [(ngModel)]=\"field.fieldValue\" />\n \n <label class=\"form-check-label\" [for]=\"'radio_' + data.name\">\n {{ data.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-template>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n</section>\n", styles: [".total_container{height:auto;position:relative}.body-section{padding:4% 15px}.button-section{margin-top:15px}.clipPath{clip-path:polygon(0% 100%,50% 0%,100% 100%);height:100px;background-color:#00f}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.mt-15{margin-top:15px}@media only screen and (max-width: 475px){.d-flex{justify-content:center;margin-bottom:25px}}.main-section{width:100%;overflow-y:hidden}.subTabs_section{padding:1rem 5rem;height:12vh}.active_route_section{height:89%;border:1px solid #0000000F;padding:15px 20px;background-color:#fff;border-radius:6px}.active_route_section_normal{background-color:#f6f6f6;border:none;padding:10px 4rem}.list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.single_tab{color:#0e233c99;font-size:14px;font-weight:500;font-family:interReg;padding:10px 20px}.single_tab_active{width:max-content;height:32px;background-color:#0015800a;display:flex;align-items:center;font-weight:600;padding:10px 20px;border-radius:4px;color:#0e233c}.align-items-center{align-items:center}.header{height:8vh;padding:10px;border-bottom:2px solid rgba(0,0,0,.06);display:flex}.p-5{padding:5rem}.backToLeads{color:#000!important}.body{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;padding:2rem;border-radius:10px}.profile-img{display:flex;align-items:center;gap:2rem}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.image-box{display:flex;gap:1rem;margin-top:3rem;cursor:pointer}.image-box span{color:#0189ea;font-size:14px;font-weight:500;padding:11px 7rem;border:2px solid rgba(0,0,0,.06);height:47px;border-radius:10px}.image_box{display:flex;align-items:center}.dummy-image{height:55px}.label-text{font-weight:400;font-family:Inter;font-size:14px;color:#434443}.input-text{border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.footer{display:flex;gap:1rem;align-items:center;justify-content:flex-end;height:8vh;padding:10px;border-top:2px solid rgba(0,0,0,.06);position:absolute;bottom:0;width:100%}.footer .continue{font-size:13px;font-family:interMedium;color:#242424;font-weight:500;border:none;background-color:#f6c318;padding:10px 20px;border-radius:8px;width:max-content}.footer .cancel{font-size:13px;font-family:interMedium;color:#f6c318;font-weight:500;border:1px solid #F6C318;background-color:#fff;padding:10px 20px;border-radius:8px;width:max-content}.main-content{overflow:scroll;padding-top:5px;padding-bottom:10px}.button-parent{padding:1rem 5rem 1rem 2rem;align-items:center;display:flex;justify-content:flex-end}.button{font-size:16px!important;padding:1rem 2rem;display:inline-flex;align-items:center;justify-content:center;width:fit-content!important}.payment-details{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;border-radius:10px}.mb-5{margin-bottom:5px!important}.addedImg{display:flex;gap:5%;width:95%;margin-top:2rem}.addedImg .uploadedImg img{height:65px;width:65px;border-radius:50%}.addedImg .image-buttons{display:flex;gap:3%;padding-top:20px}.addedImg .image-buttons .button{display:flex;gap:8px;width:142px;height:40px;padding:12px 8px;font-family:lexandMedium;color:#3f3b3b;font-style:normal;font-weight:500;font-size:12px!important;border:1px dashed #E4E7EC;border-radius:12px;cursor:pointer}.addedImg .image-buttons .button img{width:20px}.addedImg .image-buttons .button .delete{display:flex;gap:15%;width:60%;margin:auto}.addedImg .image-buttons .button .delete img{width:12px}.emptyText{height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:50px}.emptyText img{height:200px}@media screen and (max-width: 475px){.body{margin:0rem}.emptyText{padding:1rem}.emptyText img{width:100%}.subTabs_section{padding:1rem .5rem}.list_tabs{white-space:nowrap;overflow:scroll;justify-content:flex-start}.payment-details{margin:0rem}}.mtb-15{margin-top:15px;margin-bottom:15px}.checkbox-label{display:flex;align-items:center;gap:15px}.checkbox-label input{height:16px;width:16px}.upload-file{display:flex;align-items:center;justify-content:space-between;padding-right:10px}.upload-file mat-icon{color:#4caf50}.upload-file p{margin-bottom:0}@media only screen and (min-width: 320px) and (max-width : 500px){.image-box span{padding:11px 4rem}}mat-form-field{border:1px solid 2px solid rgba(208,213,221,1);border-radius:8px}.input-container{display:flex;border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.input-container input:focus{outline:none}.input-text-1{border:none}.image-box-1{display:flex;cursor:pointer;border-left:1px solid rgba(208,213,221,1)}.dummy-image-1{font-size:20px;color:green}.error{font-size:12px;font-family:var(--primary-font-family);color:red;margin-top:4px}\n"] }]
11616
+ ], template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\n [simpoBorder]=\"styles?.border\">\n <div class=\"main-section\"\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"body-section\">\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\n <div>\n <simpo-text-element [textData]=\"content?.inputText?.[0]?.value\" [textLabel]=\"content?.inputText?.[0]?.label\"></simpo-text-element>\n </div>\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\n ]\">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <section class=\"main-section\">\n <div *ngIf=\"formStatus != 'REGISTERED' && formStatus != 'ADMITTED'\">\n <div class=\"subTabs_section\">\n <div class=\"list_tabs d-flex align-items-center\">\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\n {{key | titlecase}}\n </div>\n </ng-container>\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = 'Document'\" *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Document' ? 'single_tab_active' : 'single_tab'\">\n Document\n </div>\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\n *ngIf=\"data?.sectionType === 'admissionForm'\"\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\n Payment\n </div>\n </div>\n </div>\n\n <div class=\"main-content\">\n <ng-container *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : [];let groupIndex = index\">\n <div class=\"body\" *ngIf=\"group !== 'Backup Contact'\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n {{group}}\n </div>\n\n <ng-container *ngIf=\"groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"image-box\" *ngIf=\"!payload.imgUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput.click()\" alt=\"\">\n <div class=\"image_box\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\"image/x-png,image/jpeg,image/jpg\" (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #fileInput />\n\n <div *ngIf=\"payload.imgUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(payload.imgUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n\n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n\n </div>\n </div>\n\n </div>\n </ng-container>\n\n <!-- <div class=\"row mt-1\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\" *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div> -->\n <div class=\"row mt-1\" *ngIf=\"group != 'Siblings Details' && group != 'Past school Details'\">\n <ng-container *ngFor=\"let info of fieldData[selectedKey][group]\">\n <div\n [ngClass]=\"(info.type === 'FATHER_IMAGE' || info.type === 'MOTHER_IMAGE' || info.type === 'GUARDIAN_IMAGE') ? 'col-md-12 col-12' : 'col-md-4 col-12 mt-1'\"\n *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{returnDisplayText(info.displayText || info.fieldLabel)}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <div class=\"\" *ngIf=\"group === 'Siblings Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfSiblings(fieldData['Family Details']['Siblings Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfSiblings(fieldData['Family Details']['Siblings Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n <!-- <div class=\"border_bottom\" *ngIf=\"i >= 1\"></div> -->\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Siblings Details' && showAddSiblingsButton()\">\n <button (click)=\"addSibling(nextSiblingNumber)\" class=\"add_sibling\" style=\"width:max-content !important\">+ Add Sibling {{ nextSiblingNumber\n }}</button>\n </div>\n </div>\n <div class=\"\" *ngIf=\"group === 'Past school Details'\">\n <ng-container\n *ngFor=\"let key of objectKeys(groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details']));let i = index\">\n <div class=\"row mt-2\">\n <ng-container *ngFor=\"let info of groupOfPastSchoolDetails(fieldData['Student Details']['Past school Details'])[key]\">\n <div class=\"col-md-4 col-12 mt-1\" *ngIf=\"info.isDisplay\">\n <div class=\"d-flex\">\n <label for=\"\" class=\"label-text\"\n *ngIf=\"(info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\"\n [title]=\"returnDisplayText(info.displayText || info.fieldLabel)\">{{info.displayText\n || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required && (info.type != 'FATHER_IMAGE' && info.type != 'MOTHER_IMAGE' && info.type != 'GUARDIAN_IMAGE')\">*</span>\n </div>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info, group:group}\"></ng-container>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <div class=\"add_more_siblings d-flex justify-content-end\"\n *ngIf=\"group === 'Past school Details' && showAddPastSchoolButton()\">\n <button (click)=\"addPastSchool(nextPastSchoolNumber)\" class=\"add_sibling\"\n style=\"width:max-content !important\">+ Add Past School {{ nextPastSchoolNumber}}</button>\n </div>\n </div>\n </div>\n\n <div class=\"body\" *ngIf=\"fieldData[selectedKey].hasOwnProperty('Backup Contact') && studentLiveWith === 'single parent' && groupIndex == 0 && Object.keys(fieldData)[0] === selectedKey\">\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\n Backup Contact (Optional)\n </div>\n\n <div class=\"row mt-1\">\n <div class=\"col-md-12\">\n <label class=\"mtb-15 checkbox-label\">\n <input type=\"checkbox\" name=\"\" id=\"\" [(ngModel)]=\"payload.parentAuthorization\">\n I authorize the school to release the child only to the parent listed above\n </label>\n </div>\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey]['Backup Contact']\">\n <label for=\"\" class=\"label-text\">{{info.displayText || info.fieldLabel}}</label>&nbsp; <span style=\"color: red;\"\n *ngIf=\"info.required\">*</span> <br>\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\n </div>\n <div class=\"col-md-4 col-12 mt-1\">\n <label for=\"\" class=\"label-text\">Upload Supporting Document (Optional)</label>\n <div class=\"input-text upload-file\" (click)=\"backUpDocInput.click()\">\n <p>{{backupDocFile ? 'File Uploaded' : 'Upload File'}}</p>\n <mat-icon>cloud_upload</mat-icon>\n </div>\n <input id=\"vendorImage\" type=\"file\" name=\"myfile\" hidden\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"uploadBackUpDocument($event)\" class=\"pc-btn\"\n id=\"browse_contact_image\" #backUpDocInput />\n </div>\n </div>\n </div>\n\n </ng-container>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Document' && data?.sectionType === 'admissionForm'\">\n <simpo-document [documentList]=\"documentList\"></simpo-document>\n </div>\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\n <simpo-payment-details [admissionData]=\"payload\"\n [subscriptionsData]=\"subscriptionsData\" [termPaymentList]=\"termPaymentList\"></simpo-payment-details>\n </div>\n </div>\n\n <div class=\"button-parent\">\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\n (data?.sectionType === 'registrationForm' &&\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\n [buttonStyle]=\"button.styles\"\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\n </ng-container>\n </div>\n </div>\n\n <div class=\"emptyText\" *ngIf=\"formStatus == 'REGISTERED' || formStatus == 'ADMITTED'\">\n <img [src]=\"content?.image?.url\" alt=\"\" *ngIf=\"content?.image?.showImage\">\n <div class=\"heading-large\" [innerHtml]=\"content?.inputText?.[1]?.value\"></div>\n </div>\n </section>\n\n <ng-template #inputData let-field=\"data\" let-group=\"group\">\n <div *ngIf=\"field.dataType == 'IMAGE'\">\n <div class=\"image-box\" *ngIf=\"!field.fieldImageUrl\">\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\n (click)=\"fileInput2.click()\" alt=\"\">\n <div class=\"d-flex align-items-center\">\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput2.click()\">Click to\n upload</span>\n </div>\n </div>\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\n (change)=\"uploadParentGuardinaImages($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput2 />\n <div *ngIf=\"field.fieldImageUrl\" class=\"addedImg\">\n <div class=\"uploadedImg\">\n <img alt=\"\" [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\">\n </div>\n <div class=\"image-buttons\">\n <div class=\"button\" (click)=\"fileInput2.click()\">\n <img src=\"../../../../../../../../../assets/images/blogs/change_image.svg\" alt=\"\">\n Change Image\n </div>\n <div class=\"button delete-change\" (click)=\"deleteImg()\">\n \n <div class=\"delete\">\n <img src=\"./../../../../../../../../../assets/images/blogs/delete_image.svg\" alt=\"\">\n <div>Delete</div>\n </div>\n \n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'TEXT' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'NUMBER' && field.isDisplay\">\n <input type=\"number\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n <div class=\"error\" *ngIf=\"field.fieldValue && !getFieldValidation(field)\">\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('phone number')\">\n Please enter a valid 10-digit Indian mobile number.\n </ng-container>\n <ng-container *ngIf=\"field.fieldLabel?.toLowerCase().includes('email')\">\n Please enter a valid email address.\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"field.dataType === 'MONEY' && field.isDisplay\">\n <input type=\"text\" class=\"input-text\" [placeholder]=\"'Enter '+field.fieldLabel\" [(ngModel)]=\"field.fieldValue\">\n </div>\n <div *ngIf=\"field.dataType === 'DATE' && field.isDisplay\">\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\" [placeholder]=\"'Select '+field.fieldLabel\" [max]=\"getMaxDate(field)\"\n (input)=\"checkDob(field)\">\n </div>\n <div class=\"input-container\" *ngIf=\"field.dataType === 'TEXT_FILE' && field.isDisplay\">\n <input matInput class=\"input-text-1\" [(ngModel)]=\"field.fieldValue\" style=\"width:90%\">\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"!field.fieldImageUrl\"\n style=\"width:10%\">\n <mat-icon (click)=\"fileInput1.click()\"\n class=\"dummy-image-1 w-100 d-flex justify-content-center\">cloud_upload</mat-icon>\n </div>\n <div class=\"image-box-1 d-flex justify-content-center align-items-center\" *ngIf=\"field.fieldImageUrl\" style=\"width:10%\">\n <!-- If the uploaded file is an image, show the preview -->\n <img\n *ngIf=\"isImage(field.fieldImageUrl)\"\n alt=\"\"\n class=\"w-100 h-100\"\n [src]=\"ds.bypassSecurityTrustUrl(field.fieldImageUrl)\"\n (click)=\"fileInput1.click()\" />\n \n <!-- If the uploaded file is not an image, show a file icon -->\n <mat-icon\n *ngIf=\"!isImage(field.fieldImageUrl)\"\n class=\"w-100 d-flex justify-content-center align-items-center dummy-image-1\"\n (click)=\"fileInput1.click()\">insert_drive_file</mat-icon>\n </div>\n \n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\"\n accept=\".doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/x-png,image/jpeg,image/jpg,.pdf, video/mp4,video/x-matroska,video/x-msvideo,video/quicktime\"\n (change)=\"updateSelectedImage($event,field)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput1 />\n </div>\n <div *ngIf=\"field.dataType === 'DROPDOWN' && field.isDisplay\" class=\"admission\">\n <mat-form-field class=\"input-text-1 input_card\" appearance=\"outline\" style=\"width:100%\">\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\" [multiple]=\"field.multipleSelection\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\" (click)=\"masterDropdownValueChange(item, field)\">{{item.label}}</mat-option>\n </ng-container>\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n </div>\n <div *ngIf=\"field.dataType === 'CHECKBOX' && field.isDisplay\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.label}}\n </label>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.sourceData[field.dataSourceType]\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"flexCheckChecked\" [(ngModel)]=\"data.checked\">\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\n {{data.name}}\n </label>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"field.dataType === 'RADIOBUTTON' && field.isDisplay\">\n <div style=\"display: flex; gap: 20px; margin-top: 10px; height: 35px;align-items: center;\">\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\n <!-- <div class=\" mb-5\" *ngFor=\"let data of field.value\">\n <mat-radio-button [value]=\"data.value\" [(ngModel)]=\"field.fieldValue\">{{data.label}}</mat-radio-button>\n </div> -->\n <mat-radio-group [(ngModel)]=\"field.fieldValue\" (change)=\"radioButtonChanged(field,selectedKey,group)\">\n <mat-radio-button *ngFor=\"let data of field.value\" [value]=\"data.value\">\n {{ data.label }}\n </mat-radio-button>\n </mat-radio-group>\n </ng-container>\n \n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\n <div class=\"form-check mb-5\" *ngFor=\"let data of field.value\">\n <input class=\"form-check-input\" type=\"radio\" [value]=\"data.name\" [(ngModel)]=\"field.fieldValue\" />\n \n <label class=\"form-check-label\" [for]=\"'radio_' + data.name\">\n {{ data.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </ng-template>\n\n\n <ng-container *ngIf=\"styles?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n</section>\n", styles: [".total_container{height:auto;position:relative}.body-section{padding:4% 15px}.button-section{margin-top:15px}.clipPath{clip-path:polygon(0% 100%,50% 0%,100% 100%);height:100px;background-color:#00f}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.mt-15{margin-top:15px}@media only screen and (max-width: 475px){.d-flex{justify-content:center;margin-bottom:25px}}.main-section{width:100%;overflow-y:hidden}.subTabs_section{padding:1rem 5rem;height:12vh}.active_route_section{height:89%;border:1px solid #0000000F;padding:15px 20px;background-color:#fff;border-radius:6px}.active_route_section_normal{background-color:#f6f6f6;border:none;padding:10px 4rem}.list_tabs{border:1px solid #0000001A;background-color:#ffffffe5;padding:10px;border-radius:6px;gap:10px;height:50px}.single_tab{color:#0e233c99;font-size:14px;font-weight:500;font-family:interReg;padding:10px 20px}.single_tab_active{width:max-content;height:32px;background-color:#0015800a;display:flex;align-items:center;font-weight:600;padding:10px 20px;border-radius:4px;color:#0e233c}.align-items-center{align-items:center}.header{height:8vh;padding:10px;border-bottom:2px solid rgba(0,0,0,.06);display:flex}.p-5{padding:5rem}.backToLeads{color:#000!important}.body{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;padding:2rem;border-radius:10px}.profile-img{display:flex;align-items:center;gap:2rem}.mt-2{margin-top:2rem!important}.mt-1{margin-top:1rem!important}.image-box{display:flex;gap:1rem;margin-top:3rem;cursor:pointer}.image-box span{color:#0189ea;font-size:14px;font-weight:500;padding:11px 7rem;border:2px solid rgba(0,0,0,.06);height:47px;border-radius:10px}.image_box{display:flex;align-items:center}.dummy-image{height:55px}.label-text{font-weight:400;font-family:Inter;font-size:14px;color:#434443}.input-text{border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.footer{display:flex;gap:1rem;align-items:center;justify-content:flex-end;height:8vh;padding:10px;border-top:2px solid rgba(0,0,0,.06);position:absolute;bottom:0;width:100%}.footer .continue{font-size:13px;font-family:interMedium;color:#242424;font-weight:500;border:none;background-color:#f6c318;padding:10px 20px;border-radius:8px;width:max-content}.footer .cancel{font-size:13px;font-family:interMedium;color:#f6c318;font-weight:500;border:1px solid #F6C318;background-color:#fff;padding:10px 20px;border-radius:8px;width:max-content}.main-content{overflow:scroll;padding-top:5px;padding-bottom:10px}.button-parent{padding:1rem 5rem 1rem 2rem;align-items:center;display:flex;justify-content:flex-end}.button{font-size:16px!important;padding:1rem 2rem;display:inline-flex;align-items:center;justify-content:center;width:fit-content!important}.payment-details{margin:1rem 5rem 0rem;box-shadow:#00000029 0 1px 4px;border-radius:10px}.mb-5{margin-bottom:5px!important}.addedImg{display:flex;gap:5%;width:95%;margin-top:2rem}.addedImg .uploadedImg img{height:65px;width:65px;border-radius:50%}.addedImg .image-buttons{display:flex;gap:3%;padding-top:20px}.addedImg .image-buttons .button{display:flex;gap:8px;width:142px;height:40px;padding:12px 8px;font-family:lexandMedium;color:#3f3b3b;font-style:normal;font-weight:500;font-size:12px!important;border:1px dashed #E4E7EC;border-radius:12px;cursor:pointer}.addedImg .image-buttons .button img{width:20px}.addedImg .image-buttons .button .delete{display:flex;gap:15%;width:60%;margin:auto}.addedImg .image-buttons .button .delete img{width:12px}.emptyText{height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:50px}.emptyText img{height:200px}@media screen and (max-width: 475px){.body{margin:0rem}.emptyText{padding:1rem}.emptyText img{width:100%}.subTabs_section{padding:1rem .5rem}.list_tabs{white-space:nowrap;overflow:scroll;justify-content:flex-start}.payment-details{margin:0rem}}.mtb-15{margin-top:15px;margin-bottom:15px}.checkbox-label{display:flex;align-items:center;gap:15px}.checkbox-label input{height:16px;width:16px}.upload-file{display:flex;align-items:center;justify-content:space-between;padding-right:10px}.upload-file mat-icon{color:#4caf50}.upload-file p{margin-bottom:0}@media only screen and (min-width: 320px) and (max-width : 500px){.image-box span{padding:11px 4rem}}mat-form-field{border:1px solid 2px solid rgba(208,213,221,1);border-radius:8px}.input-container{display:flex;border-radius:7px;border:2px solid rgba(208,213,221,1);height:42px;width:100%;margin-top:5px;padding-left:10px}.input-container input:focus{outline:none}.input-text-1{border:none}.image-box-1{display:flex;cursor:pointer;border-left:1px solid rgba(208,213,221,1)}.dummy-image-1{font-size:20px;color:green}.error{font-size:12px;font-family:var(--primary-font-family);color:red;margin-top:4px}\n"] }]
11457
11617
  }], ctorParameters: () => [{ type: RestService }, { type: i2$2.MatSnackBar }, { type: EventsService }, { type: i2$4.ActivatedRoute }, { type: i1$1.DomSanitizer }, { type: ImageUplaodService }], propDecorators: { data: [{
11458
11618
  type: Input
11459
11619
  }], index: [{