simpo-component-library 2.0.94 → 2.0.96
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.
- package/esm2022/lib/components/index.mjs +6 -5
- package/esm2022/lib/components/payment-details/payment-details.component.mjs +151 -0
- package/esm2022/lib/sections/registration-form/registration-form.component.mjs +83 -8
- package/esm2022/lib/services/rest.service.mjs +8 -1
- package/fesm2022/simpo-component-library.mjs +232 -6
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/components/index.d.ts +2 -1
- package/lib/components/payment-details/payment-details.component.d.ts +18 -0
- package/lib/directive/background-directive.d.ts +1 -1
- package/lib/directive/button-directive.directive.d.ts +1 -1
- package/lib/directive/color.directive.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/sections/registration-form/registration-form.component.d.ts +9 -0
- package/lib/services/rest.service.d.ts +2 -0
- package/package.json +1 -1
- package/simpo-component-library-2.0.96.tgz +0 -0
- package/simpo-component-library-2.0.94.tgz +0 -0
@@ -1277,16 +1277,161 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
1277
1277
|
type: Input
|
1278
1278
|
}] } });
|
1279
1279
|
|
1280
|
+
class PaymentDetailsComponent {
|
1281
|
+
constructor() {
|
1282
|
+
this.subscriptionsData = [];
|
1283
|
+
this.Object = Object;
|
1284
|
+
this.feeStructure = {
|
1285
|
+
"id": '1234',
|
1286
|
+
"businessDetails": {
|
1287
|
+
"id": '1234'
|
1288
|
+
},
|
1289
|
+
"grades": [
|
1290
|
+
{
|
1291
|
+
"_id": "1234",
|
1292
|
+
"name": "Grade II"
|
1293
|
+
},
|
1294
|
+
{
|
1295
|
+
"_id": "1234",
|
1296
|
+
"name": "Grade IV"
|
1297
|
+
}
|
1298
|
+
],
|
1299
|
+
"board": "STATE",
|
1300
|
+
"academicYearStart": 2024,
|
1301
|
+
"academicYearEnd": 2025,
|
1302
|
+
"feeConfigs": [
|
1303
|
+
{
|
1304
|
+
"feeTypeId": '12324',
|
1305
|
+
"feeHeadId": '1234',
|
1306
|
+
"feeType": "Tution fee",
|
1307
|
+
"feeHead": "exam fee",
|
1308
|
+
"amount": 300,
|
1309
|
+
"discountAmount": 0,
|
1310
|
+
"isFixed": false
|
1311
|
+
}
|
1312
|
+
],
|
1313
|
+
"subscriptionPlans": [],
|
1314
|
+
"totalAmount": 300,
|
1315
|
+
"createdTimestamp": {
|
1316
|
+
"$date": "2024-12-15T07:10:54.889Z"
|
1317
|
+
},
|
1318
|
+
"updatedTimestamp": {
|
1319
|
+
"$date": "2024-12-15T07:10:54.889Z"
|
1320
|
+
},
|
1321
|
+
"active": true,
|
1322
|
+
};
|
1323
|
+
this.defaultImage = 'https://prod-simpo.s3.ap-south-1.amazonaws.com/prod-images/917067c1734337280303cancel.png';
|
1324
|
+
this.subscriptions = {
|
1325
|
+
"Food Fee": [
|
1326
|
+
{
|
1327
|
+
subscriptionTitle: 'Breakfast',
|
1328
|
+
pricing: {
|
1329
|
+
"WEEKLY": 2000,
|
1330
|
+
"MONTHLY": 3000,
|
1331
|
+
"YEARLY": 4000
|
1332
|
+
}
|
1333
|
+
},
|
1334
|
+
{
|
1335
|
+
subscriptionTitle: 'Lunch',
|
1336
|
+
pricing: {
|
1337
|
+
"WEEKLY": 2000,
|
1338
|
+
"MONTHLY": 3000,
|
1339
|
+
"YEARLY": 4000
|
1340
|
+
}
|
1341
|
+
},
|
1342
|
+
{
|
1343
|
+
subscriptionTitle: 'Snacks',
|
1344
|
+
pricing: {
|
1345
|
+
"WEEKLY": 2000,
|
1346
|
+
"MONTHLY": 3000,
|
1347
|
+
"YEARLY": 4000
|
1348
|
+
}
|
1349
|
+
}
|
1350
|
+
]
|
1351
|
+
};
|
1352
|
+
}
|
1353
|
+
ngOnInit() {
|
1354
|
+
this.feeStructure = this.admissionData.studentFeeStructure;
|
1355
|
+
this.subscriptions = this.arrangeSubscriptionForAdmission(this.subscriptionsData);
|
1356
|
+
this.feeConfig = this.arrangeFeeConfig(this.feeStructure.feeConfigs);
|
1357
|
+
this.calculateTotalAmount();
|
1358
|
+
}
|
1359
|
+
toggleSelection(subscription, frequency) {
|
1360
|
+
if (!this.feeStructure.subscriptionPlans)
|
1361
|
+
this.feeStructure.subscriptionPlans = [];
|
1362
|
+
let removeIndex = -1;
|
1363
|
+
for (let i = 0; i < this.feeStructure.subscriptionPlans.length; i++) {
|
1364
|
+
let sub = this.feeStructure.subscriptionPlans[i];
|
1365
|
+
if (sub.subId === subscription.subId) {
|
1366
|
+
removeIndex = i;
|
1367
|
+
break;
|
1368
|
+
}
|
1369
|
+
}
|
1370
|
+
if (removeIndex == -1) {
|
1371
|
+
this.feeStructure.subscriptionPlans.push({ ...subscription, frequency: frequency });
|
1372
|
+
this.calculateTotalAmount();
|
1373
|
+
return;
|
1374
|
+
}
|
1375
|
+
this.feeStructure.subscriptionPlans.splice(removeIndex, 1);
|
1376
|
+
if (subscription.selectedOption === frequency) {
|
1377
|
+
subscription.selectedOption = null;
|
1378
|
+
}
|
1379
|
+
else {
|
1380
|
+
subscription.selectedOption = frequency;
|
1381
|
+
this.feeStructure.subscriptionPlans.push({ ...subscription, frequency: frequency });
|
1382
|
+
}
|
1383
|
+
this.calculateTotalAmount();
|
1384
|
+
}
|
1385
|
+
calculateTotalAmount() {
|
1386
|
+
this.feeStructure.totalAmount = 0;
|
1387
|
+
for (let config of this.feeStructure.feeConfigs) {
|
1388
|
+
this.feeStructure.totalAmount += config.amount;
|
1389
|
+
}
|
1390
|
+
for (let subscription of this.feeStructure.subscriptionPlans) {
|
1391
|
+
this.feeStructure.totalAmount += subscription.pricing[subscription.frequency];
|
1392
|
+
}
|
1393
|
+
}
|
1394
|
+
arrangeSubscriptionForAdmission(subscriptionList) {
|
1395
|
+
let response = {};
|
1396
|
+
for (let subscription of subscriptionList) {
|
1397
|
+
if (!response[subscription.subscriptionType]) {
|
1398
|
+
response[subscription.subscriptionType] = [];
|
1399
|
+
}
|
1400
|
+
response[subscription.subscriptionType].push(subscription);
|
1401
|
+
}
|
1402
|
+
return response;
|
1403
|
+
}
|
1404
|
+
arrangeFeeConfig(feeConfigList) {
|
1405
|
+
let response = {};
|
1406
|
+
for (let config of feeConfigList) {
|
1407
|
+
if (!response[config.feeType])
|
1408
|
+
response[config.feeType] = [];
|
1409
|
+
response[config.feeType].push(config);
|
1410
|
+
}
|
1411
|
+
return response;
|
1412
|
+
}
|
1413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PaymentDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
1414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: PaymentDetailsComponent, isStandalone: true, selector: "simpo-payment-details", inputs: { admissionData: "admissionData", subscriptionsData: "subscriptionsData" }, ngImport: i0, template: "<section class=\"main-section\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"heading left-side\">\r\n Admission Fee\r\n </div>\r\n\r\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\r\n <div class=\"heading mb-20\">{{configList}}</div>\r\n\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\r\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\r\n <p class=\"heading\">{{type}}</p>\r\n\r\n <table class=\"subscription-table w-100\">\r\n <thead>\r\n <th>Subscription Title</th>\r\n <th>Monthly</th>\r\n <th>Quaterly</th>\r\n <th>Yearly</th>\r\n <th>On Demand</th>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\r\n <td>{{data.subName}}</td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['MONTHLY']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['QUARTERLY']}}\r\n </label>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['ANNUALLY']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['ONDEMAND']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 right-side\">\r\n <div class=\"heading mb-20\">\r\n Fee Calculation\r\n </div>\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\r\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\r\n </div>\r\n\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\r\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\r\n </div>\r\n\r\n <div class=\"total-fee\">\r\n <div class=\"heading mb-5\">\r\n Total Fee\r\n </div>\r\n <div class=\"amount\">\r\n \u20B9 {{feeStructure.totalAmount}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".heading{font-size:18px;font-weight:500}.left-side{background:#fafcff99;padding:2rem}.mt-10{margin-top:10px}.justify-space{justify-content:space-between}.sub-heading,.amount{font-size:16px;font-weight:500}.mb-0{margin-bottom:0}.mb-20{margin-bottom:20px}.mb-15{margin-bottom:15px}.subscription-table{width:50%}.subscription-table th{color:#434443;font-weight:400;font-size:16px;font-family:DM SANS}.subscription-table td{font-weight:500;color:#000;font-size:16px;margin-top:67px;padding-top:10px}.right-side{background-color:#fdfbfa;padding:2rem;position:relative}.right-side .sub-heading{font-size:18px}.right-side .amount{font-size:16px}.right-side .heading{font-weight:400}.mb-5{margin-bottom:5px}.total-fee{position:absolute;bottom:20px;width:90%}.total-fee .amount{background:#fff;height:87px;display:flex;align-items:center;justify-content:center;font-size:32px;border-radius:8px}.defaultImage{height:15px;width:15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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"] }] }); }
|
1415
|
+
}
|
1416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: PaymentDetailsComponent, decorators: [{
|
1417
|
+
type: Component,
|
1418
|
+
args: [{ selector: 'simpo-payment-details', standalone: true, imports: [CommonModule, FormsModule], template: "<section class=\"main-section\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"heading left-side\">\r\n Admission Fee\r\n </div>\r\n\r\n <div class=\"left-side mt-10\" *ngFor=\"let configList of Object.keys(feeConfig)\">\r\n <div class=\"heading mb-20\">{{configList}}</div>\r\n\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeConfig[configList]\">\r\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\r\n </div>\r\n </div>\r\n\r\n <div class=\"left-side mt-10\" *ngFor=\"let type of Object.keys(subscriptions)\">\r\n <p class=\"heading\">{{type}}</p>\r\n\r\n <table class=\"subscription-table w-100\">\r\n <thead>\r\n <th>Subscription Title</th>\r\n <th>Monthly</th>\r\n <th>Quaterly</th>\r\n <th>Yearly</th>\r\n <th>On Demand</th>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of subscriptions[type];let i = index\">\r\n <td>{{data.subName}}</td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['QUARTERLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['MONTHLY']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['QUARTERLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['MONTHLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['QUARTERLY']}}\r\n </label>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['MONTHLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['ANNUALLY']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['ANNUALLY']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ANNUALLY']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n <td>\r\n <div class=\"form-check\" *ngIf=\"data.pricing['ONDEMAND']\">\r\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\">\r\n <label class=\"form-check-label\" for=\"flexCheckChecked\">\r\n \u20B9 {{data.pricing['ONDEMAND']}}\r\n </label>\r\n </div>\r\n <img class=\"defaultImage\" *ngIf=\"!data.pricing['ONDEMAND']\" [src]=\"defaultImage\" alt=\"\">\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 right-side\">\r\n <div class=\"heading mb-20\">\r\n Fee Calculation\r\n </div>\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let config of feeStructure.feeConfigs\">\r\n <p class=\"sub-heading mb-0\">{{config.feeHead}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{config.amount}}</p>\r\n </div>\r\n\r\n <div class=\"d-flex justify-space mt-10 mb-15\" *ngFor=\"let subscripition of feeStructure.subscriptionPlans\">\r\n <p class=\"sub-heading mb-0\">{{subscripition.subName}}</p>\r\n <p class=\"amount mb-0\">\u20B9 {{subscripition.pricing[subscripition.frequency]}}</p>\r\n </div>\r\n\r\n <div class=\"total-fee\">\r\n <div class=\"heading mb-5\">\r\n Total Fee\r\n </div>\r\n <div class=\"amount\">\r\n \u20B9 {{feeStructure.totalAmount}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".heading{font-size:18px;font-weight:500}.left-side{background:#fafcff99;padding:2rem}.mt-10{margin-top:10px}.justify-space{justify-content:space-between}.sub-heading,.amount{font-size:16px;font-weight:500}.mb-0{margin-bottom:0}.mb-20{margin-bottom:20px}.mb-15{margin-bottom:15px}.subscription-table{width:50%}.subscription-table th{color:#434443;font-weight:400;font-size:16px;font-family:DM SANS}.subscription-table td{font-weight:500;color:#000;font-size:16px;margin-top:67px;padding-top:10px}.right-side{background-color:#fdfbfa;padding:2rem;position:relative}.right-side .sub-heading{font-size:18px}.right-side .amount{font-size:16px}.right-side .heading{font-weight:400}.mb-5{margin-bottom:5px}.total-fee{position:absolute;bottom:20px;width:90%}.total-fee .amount{background:#fff;height:87px;display:flex;align-items:center;justify-content:center;font-size:32px;border-radius:8px}.defaultImage{height:15px;width:15px}\n"] }]
|
1419
|
+
}], ctorParameters: () => [], propDecorators: { admissionData: [{
|
1420
|
+
type: Input
|
1421
|
+
}], subscriptionsData: [{
|
1422
|
+
type: Input
|
1423
|
+
}] } });
|
1424
|
+
|
1280
1425
|
class SimpoComponentModule {
|
1281
1426
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1282
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule], exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule] }); }
|
1283
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, NgxSkeletonLoaderModule] }); }
|
1427
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent], exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent] }); }
|
1428
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent, NgxSkeletonLoaderModule] }); }
|
1284
1429
|
}
|
1285
1430
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SimpoComponentModule, decorators: [{
|
1286
1431
|
type: NgModule,
|
1287
1432
|
args: [{
|
1288
|
-
imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule],
|
1289
|
-
exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule],
|
1433
|
+
imports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent],
|
1434
|
+
exports: [HoverElementsComponent, DeleteHoverElementComponent, InputFieldsComponent, NgxSkeletonLoaderModule, PaymentDetailsComponent],
|
1290
1435
|
}]
|
1291
1436
|
}] });
|
1292
1437
|
|
@@ -3683,6 +3828,13 @@ class RestService {
|
|
3683
3828
|
createAdmission(payload) {
|
3684
3829
|
return this.http.post(this.BASE_URL + `crm/registration/admission?registrationId=${payload?.registrationId || ''}`, payload);
|
3685
3830
|
}
|
3831
|
+
getSubscriptionForFeeStructure(gradeId) {
|
3832
|
+
const businessId = localStorage.getItem('businessId');
|
3833
|
+
return this.http.get(this.BASE_URL + `crm/subscription/plan/list?businessId=${businessId}&gradeId=${gradeId}`);
|
3834
|
+
}
|
3835
|
+
getFeeStructure(payload) {
|
3836
|
+
return this.http.put(this.BASE_URL + `crm/fee/structure`, payload);
|
3837
|
+
}
|
3686
3838
|
getFieldsToDisplay(fieldsList) {
|
3687
3839
|
let map = {};
|
3688
3840
|
for (let field of fieldsList) {
|
@@ -7805,6 +7957,7 @@ class RegistrationFormComponent extends BaseSection {
|
|
7805
7957
|
"fieldItems": [],
|
7806
7958
|
};
|
7807
7959
|
this.fieldData = {};
|
7960
|
+
this.subscriptionsData = [];
|
7808
7961
|
}
|
7809
7962
|
ngOnInit() {
|
7810
7963
|
this.businessId = localStorage.getItem("bId") ?? localStorage.getItem("businessId");
|
@@ -7828,6 +7981,8 @@ class RegistrationFormComponent extends BaseSection {
|
|
7828
7981
|
}
|
7829
7982
|
submitForm() {
|
7830
7983
|
this.payload.fieldItems = this.convertToListOfFields();
|
7984
|
+
if (this.payload.fieldItems.length == 0)
|
7985
|
+
return;
|
7831
7986
|
this.data?.sectionType === 'registrationForm' ? this.createRegistration() : this.createAdmission();
|
7832
7987
|
}
|
7833
7988
|
createRegistration() {
|
@@ -7845,6 +8000,10 @@ class RegistrationFormComponent extends BaseSection {
|
|
7845
8000
|
for (let step of this.Object.keys(this.fieldData)) {
|
7846
8001
|
for (let group of Object.keys(this.fieldData[step])) {
|
7847
8002
|
for (let field of this.fieldData[step][group]) {
|
8003
|
+
if (field.required && !field.fieldValue) {
|
8004
|
+
this.snackBar.open(`Please enter ${field.fieldLabel}`, 'close', { duration: 2000 });
|
8005
|
+
return [];
|
8006
|
+
}
|
7848
8007
|
fieldList.push({
|
7849
8008
|
fieldId: field.fieldId,
|
7850
8009
|
fieldName: field.fieldLabel,
|
@@ -7861,8 +8020,75 @@ class RegistrationFormComponent extends BaseSection {
|
|
7861
8020
|
}
|
7862
8021
|
updateAdmissionImage(ev) {
|
7863
8022
|
}
|
8023
|
+
redirectToPayment() {
|
8024
|
+
if (!(this.selectedAcademicYear && this.selectedGradeId)) {
|
8025
|
+
this.snackBar.open('Selected Grade and Academic Year first', 'close', { duration: 2000 });
|
8026
|
+
return;
|
8027
|
+
}
|
8028
|
+
this.selectedKey = 'Payment';
|
8029
|
+
}
|
8030
|
+
continueAdmission() {
|
8031
|
+
let steps = Object.keys(this.fieldData);
|
8032
|
+
let index = steps.indexOf(this.selectedKey);
|
8033
|
+
if (this.data?.sectionType === 'admissionForm' && index === steps.length - 1 && !(this.selectedAcademicYear && this.selectedGradeId)) {
|
8034
|
+
this.snackBar.open('Selected Grade and Academic Year first', 'close', { duration: 2000 });
|
8035
|
+
return;
|
8036
|
+
}
|
8037
|
+
if (this.data?.sectionType === 'admissionForm')
|
8038
|
+
this.selectedKey = index === steps.length - 1 ? 'Payment' : steps[index + 1];
|
8039
|
+
else
|
8040
|
+
this.selectedKey = steps[index + 1];
|
8041
|
+
}
|
8042
|
+
getFeeStructure() {
|
8043
|
+
if (!this.selectedAcademicYear || !this.selectedGradeId)
|
8044
|
+
return;
|
8045
|
+
let year = this.selectedAcademicYear.split("-");
|
8046
|
+
let payload = {
|
8047
|
+
"businessId": this.businessId,
|
8048
|
+
"startYear": Number(year[0]),
|
8049
|
+
"endYear": Number(year[1]),
|
8050
|
+
"pageNo": 0,
|
8051
|
+
"size": 1,
|
8052
|
+
"gradeIds": [this.selectedGradeId],
|
8053
|
+
"searchText": ""
|
8054
|
+
};
|
8055
|
+
this.restService.getFeeStructure(payload).subscribe((res) => {
|
8056
|
+
this.payload.studentFeeStructure = res.data.data[0];
|
8057
|
+
this.subscriptionsData = JSON.parse(JSON.stringify(this.payload.studentFeeStructure.subscriptionPlans));
|
8058
|
+
this.payload.studentFeeStructure.subscriptionPlans = [];
|
8059
|
+
});
|
8060
|
+
}
|
8061
|
+
inputFieldChange(item, field) {
|
8062
|
+
if (field.fieldLabel === 'Academic Year') {
|
8063
|
+
this.selectedAcademicYear = item.name;
|
8064
|
+
this.getFeeStructure();
|
8065
|
+
}
|
8066
|
+
if (field.fieldLabel === 'Grade') {
|
8067
|
+
this.selectedGradeId = item.id;
|
8068
|
+
this.getFeeStructure();
|
8069
|
+
}
|
8070
|
+
}
|
8071
|
+
arrangeSubscriptionForAdmission(subscriptionList) {
|
8072
|
+
let response = {};
|
8073
|
+
for (let subscription of subscriptionList) {
|
8074
|
+
if (!response[subscription.subscriptionType]) {
|
8075
|
+
response[subscription.subscriptionType] = [];
|
8076
|
+
}
|
8077
|
+
response[subscription.subscriptionType].push(subscription);
|
8078
|
+
}
|
8079
|
+
return response;
|
8080
|
+
}
|
8081
|
+
arrangeFeeConfig(feeConfigList) {
|
8082
|
+
let response = {};
|
8083
|
+
for (let config of feeConfigList) {
|
8084
|
+
if (!response[config.feeType])
|
8085
|
+
response[config.feeType] = [];
|
8086
|
+
response[config.feeType].push(config);
|
8087
|
+
}
|
8088
|
+
return response;
|
8089
|
+
}
|
7864
8090
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: RegistrationFormComponent, deps: [{ token: RestService }, { token: i2$3.MatSnackBar }, { token: EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
7865
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", 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\">\r\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\r\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\" [simpoBorder]=\"styles?.border\">\r\n <div class=\"main-section\" [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"body-section\">\r\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <simpo-text-element [textData]=\"item.value\" [textLabel]=\"item.label\"></simpo-text-element>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\"\r\n [ngClass]=\"[\r\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\r\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\r\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\r\n ]\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <section class=\"main-section\">\r\n <div>\r\n <div class=\"subTabs_section\">\r\n <div class=\"list_tabs d-flex align-items-center\">\r\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\r\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\r\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\r\n {{key | titlecase}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"body\" *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : []\">\r\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\r\n {{group}}\r\n </div>\r\n <div class=\"row mt-1\">\r\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey][group]\">\r\n <label for=\"\" class=\"label-text\">{{info.fieldLabel}}</label> <br>\r\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"button-parent\">\r\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\r\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\" [buttonStyle]=\"button.styles\" [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\r\n\r\n <!-- <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\"\r\n (click)=\"submitForm()\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"></app-button-element> -->\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #inputData let-field=\"data\">\r\n <div *ngIf=\"field.dataType == 'IMAGE'\">\r\n <div class=\"image-box\">\r\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\r\n (click)=\"fileInput.click()\" alt=\"\">\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\r\n upload</span>\r\n </div>\r\n </div>\r\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\r\n (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n <div *ngIf=\"field.dataType === 'TEXT'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'NUMBER'\">\r\n <input type=\"number\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'MONEY'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DATE'\">\r\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DROPDOWN'\" class=\"admission\">\r\n <mat-form-field class=\"input-text\" appearance=\"outline\">\r\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\">\r\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\r\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\">{{item.label}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\r\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\" [value]=\"item?.name\">{{item.name}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\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}.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}.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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.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: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
|
8091
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", 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\">\r\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\r\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"main-section\"\r\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"body-section\">\r\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <simpo-text-element [textData]=\"item.value\" [textLabel]=\"item.label\"></simpo-text-element>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\r\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\r\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\r\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\r\n ]\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <section class=\"main-section\">\r\n <div>\r\n <div class=\"subTabs_section\">\r\n <div class=\"list_tabs d-flex align-items-center\">\r\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\r\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\r\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\r\n {{key | titlecase}}\r\n </div>\r\n </ng-container>\r\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\r\n *ngIf=\"data?.sectionType === 'admissionForm'\"\r\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\r\n Payment\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"body\" *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : []\">\r\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\r\n {{group}}\r\n </div>\r\n <div class=\"row mt-1\">\r\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey][group]\">\r\n <label for=\"\" class=\"label-text\">{{info.fieldLabel}}</label> <span style=\"color: red;\">*</span> <br>\r\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\r\n <simpo-payment-details [admissionData]=\"payload\"\r\n [subscriptionsData]=\"subscriptionsData\"></simpo-payment-details>\r\n </div>\r\n </div>\r\n\r\n <div class=\"button-parent\">\r\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\r\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\r\n (data?.sectionType === 'registrationForm' &&\r\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\r\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\r\n\r\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\r\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\r\n\r\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\"\r\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\r\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #inputData let-field=\"data\">\r\n <div *ngIf=\"field.dataType == 'IMAGE'\">\r\n <div class=\"image-box\">\r\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\r\n (click)=\"fileInput.click()\" alt=\"\">\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\r\n upload</span>\r\n </div>\r\n </div>\r\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\r\n (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n <div *ngIf=\"field.dataType === 'TEXT'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'NUMBER'\">\r\n <input type=\"number\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'MONEY'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DATE'\">\r\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DROPDOWN'\" class=\"admission\">\r\n <mat-form-field class=\"input-text\" appearance=\"outline\">\r\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\">\r\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\r\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\">{{item.label}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\r\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\r\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\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}.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}.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}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i4.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"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
|
7866
8092
|
//directive
|
7867
8093
|
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"] }, { 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$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i11$1.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.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"] }] }); }
|
7868
8094
|
}
|
@@ -7895,7 +8121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
7895
8121
|
MatOptionModule,
|
7896
8122
|
MatSelectModule,
|
7897
8123
|
FormsModule
|
7898
|
-
], template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\r\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\r\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\" [simpoBorder]=\"styles?.border\">\r\n <div class=\"main-section\" [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"body-section\">\r\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <simpo-text-element [textData]=\"item.value\" [textLabel]=\"item.label\"></simpo-text-element>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\"\r\n [ngClass]=\"[\r\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\r\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\r\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\r\n ]\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <section class=\"main-section\">\r\n <div>\r\n <div class=\"subTabs_section\">\r\n <div class=\"list_tabs d-flex align-items-center\">\r\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\r\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\r\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\r\n {{key | titlecase}}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"body\" *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : []\">\r\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\r\n {{group}}\r\n </div>\r\n <div class=\"row mt-1\">\r\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey][group]\">\r\n <label for=\"\" class=\"label-text\">{{info.fieldLabel}}</label> <br>\r\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"button-parent\">\r\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\r\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\" [buttonStyle]=\"button.styles\" [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\r\n\r\n <!-- <app-button-element [buttonContent]=\"button.content\" [buttonStyle]=\"button.styles\" [buttonId]=\"button.id\"\r\n (click)=\"submitForm()\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"></app-button-element> -->\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #inputData let-field=\"data\">\r\n <div *ngIf=\"field.dataType == 'IMAGE'\">\r\n <div class=\"image-box\">\r\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\r\n (click)=\"fileInput.click()\" alt=\"\">\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\r\n upload</span>\r\n </div>\r\n </div>\r\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\r\n (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n <div *ngIf=\"field.dataType === 'TEXT'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'NUMBER'\">\r\n <input type=\"number\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'MONEY'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DATE'\">\r\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DROPDOWN'\" class=\"admission\">\r\n <mat-form-field class=\"input-text\" appearance=\"outline\">\r\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\">\r\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\r\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\">{{item.label}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\r\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\" [value]=\"item?.name\">{{item.name}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\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}.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}.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}\n"] }]
|
8124
|
+
], template: "<section simpoHover (hovering)=\"showEditTabs($event)\" class=\"total-container\">\r\n <div [id]=\"data?.id\" [simpoBackground]=\"styles?.background\">\r\n <div #mainContainer class=\"rowFlex\" [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\"\r\n [simpoBorder]=\"styles?.border\">\r\n <div class=\"main-section\"\r\n [ngClass]=\"{'justify-content-md-start': styles?.layout?.align === 'left' , 'justify-content-md-end': styles?.layout?.align === 'right'}\"\r\n [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"body-section\">\r\n <div [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div *ngFor=\"let item of content?.inputText\">\r\n <simpo-text-element [textData]=\"item.value\" [textLabel]=\"item.label\"></simpo-text-element>\r\n </div>\r\n <div class=\"d-flex gap-2 d-md-flex mt-15\" *ngIf=\"data?.action?.display\" [ngClass]=\"[\r\n styles?.layout?.align === 'left' ? 'justify-content-md-start' : '',\r\n styles?.layout?.align === 'center' ? 'justify-content-md-center' : '',\r\n styles?.layout?.align === 'right' ? 'justify-content-md-end' : ''\r\n ]\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <section class=\"main-section\">\r\n <div>\r\n <div class=\"subTabs_section\">\r\n <div class=\"list_tabs d-flex align-items-center\">\r\n <ng-container *ngFor=\"let key of Object.keys(fieldData)\">\r\n <div class=\"single_tab cursor-pointer\" (click)=\"selectedKey = key\"\r\n [ngClass]=\"selectedKey === key ? 'single_tab_active' : 'single_tab'\">\r\n {{key | titlecase}}\r\n </div>\r\n </ng-container>\r\n <div class=\"single_tab cursor-pointer\" (click)=\"redirectToPayment()\"\r\n *ngIf=\"data?.sectionType === 'admissionForm'\"\r\n [ngClass]=\"selectedKey === 'Payment' ? 'single_tab_active' : 'single_tab'\">\r\n Payment\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"main-content\">\r\n <div class=\"body\" *ngFor=\"let group of fieldData[selectedKey] ? Object.keys(fieldData[selectedKey]) : []\">\r\n <div class=\"list_tabs backToLeads d-flex align-items-center\">\r\n {{group}}\r\n </div>\r\n <div class=\"row mt-1\">\r\n <div class=\"col-md-4 col-12 mt-1\" *ngFor=\"let info of fieldData[selectedKey][group]\">\r\n <label for=\"\" class=\"label-text\">{{info.fieldLabel}}</label> <span style=\"color: red;\">*</span> <br>\r\n <ng-container *ngTemplateOutlet=\"inputData; context: {data: info}\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"payment-details\" *ngIf=\"selectedKey === 'Payment' && data?.sectionType === 'admissionForm'\">\r\n <simpo-payment-details [admissionData]=\"payload\"\r\n [subscriptionsData]=\"subscriptionsData\"></simpo-payment-details>\r\n </div>\r\n </div>\r\n\r\n <div class=\"button-parent\">\r\n <ng-container *ngFor=\"let button of data?.action?.buttons\">\r\n <button class=\"button\" (click)=\"submitForm()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\" *ngIf=\"(data?.sectionType === 'admissionForm' && selectedKey == 'Payment') ||\r\n (data?.sectionType === 'registrationForm' &&\r\n (Object.keys(fieldData)[Object.keys(fieldData).length - 1] == selectedKey))\"\r\n [color]=\"data?.styles?.background?.accentColor\">{{button?.content?.label}}</button>\r\n\r\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\" *ngIf=\"selectedKey != 'Payment' && data?.sectionType === 'admissionForm'\"\r\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\r\n\r\n <button class=\"button\" (click)=\"continueAdmission()\" simpoButtonDirective [id]=\"data?.id+button.id\"\r\n [buttonStyle]=\"button.styles\"\r\n *ngIf=\"data?.sectionType === 'registrationForm' && (Object.keys(fieldData)[Object.keys(fieldData).length - 1] != selectedKey)\"\r\n [color]=\"data?.styles?.background?.accentColor\">Continue</button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n </section>\r\n\r\n <ng-template #inputData let-field=\"data\">\r\n <div *ngIf=\"field.dataType == 'IMAGE'\">\r\n <div class=\"image-box\">\r\n <img class=\"dummy-image\" src=\"../../../../../../../../../assets/images/master/add-image.svg\"\r\n (click)=\"fileInput.click()\" alt=\"\">\r\n <div class=\"d-flex align-items-center\">\r\n <span class=\"fc_browse_btn\" id=\"display_browse_btn\" (click)=\"fileInput.click()\">Click to\r\n upload</span>\r\n </div>\r\n </div>\r\n <input style=\"display: none;\" id=\"vendorImage\" type=\"file\" name=\"myfile\" accept=\"image/x-png,image/jpeg,image/jpg\"\r\n (change)=\"updateAdmissionImage($event)\" class=\"pc-btn\" id=\"browse_contact_image\" #fileInput />\r\n </div>\r\n <div *ngIf=\"field.dataType === 'TEXT'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'NUMBER'\">\r\n <input type=\"number\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'MONEY'\">\r\n <input type=\"text\" class=\"input-text\" placeholder=\"enter value\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DATE'\">\r\n <input type=\"date\" class=\"input-text\" [(ngModel)]=\"field.fieldValue\">\r\n </div>\r\n <div *ngIf=\"field.dataType === 'DROPDOWN'\" class=\"admission\">\r\n <mat-form-field class=\"input-text\" appearance=\"outline\">\r\n <mat-select class=\"inputStyle\" placeholder=\"--Select--\" [(ngModel)]=\"field.fieldValue\">\r\n <ng-container *ngIf=\"(field?.value?.length || 0) > 0\">\r\n <mat-option *ngFor=\"let item of field.value\" [value]=\"item?.value\">{{item.label}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngIf=\"(field?.value?.length || 0) == 0\">\r\n <mat-option *ngFor=\"let item of field.sourceData[field.dataSourceType]\"\r\n (click)=\"inputFieldChange(item, field)\" [value]=\"item?.name\">{{item.name}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n\r\n\r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\"\r\n [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n</section>\r\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}.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}.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}\n"] }]
|
7899
8125
|
}], ctorParameters: () => [{ type: RestService }, { type: i2$3.MatSnackBar }, { type: EventsService }], propDecorators: { data: [{
|
7900
8126
|
type: Input
|
7901
8127
|
}], index: [{
|