cat-qw-lib 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -213,7 +213,7 @@ const SEQUENTIAL_MESSAGE = [
213
213
  ];
214
214
  const apiHiddenHeaderList = ['credentials', 'createdAt', 'updatedAt', '__v', 'properties', '_id', 'createdByUserID', 'updatedByUserID'];
215
215
  const dictionaryHiddenHeaderList = ['queues', 'attributes', 'createdByUserID', 'updatedByUserID', 'createdAt', 'updatedAt', '__v', '_id'];
216
- const widgetHiddenHeaderList = ['_id', 'dataItems', 'timestamp', 'createdAt', 'updatedAt', '__v', 'order'];
216
+ const widgetHiddenHeaderList = ['predefinedName', 'dataItems', 'timestamp', 'createdAt', 'updatedAt', '__v', 'order'];
217
217
  const hiddenHeaderList = ['status', 'actions'];
218
218
  const expectedRoutes = ['apiManagement', 'queue', 'dictionary', 'widget'];
219
219
  const mileList = [
@@ -291,283 +291,6 @@ const propertyDataList = [
291
291
  ]
292
292
  }
293
293
  ];
294
- const widgets = [
295
- {
296
- outOfTheBoxName: 'Application',
297
- title: 'Application Details',
298
- subtitle: {
299
- label: 'Risk Rating:',
300
- value: 'High',
301
- color: 'danger'
302
- },
303
- percentage: '80%',
304
- fields: [
305
- { label: 'Application ID | Submission Date', value: '00160750 | 04-10-2024' },
306
- { label: 'No of Applicants', value: '2' },
307
- { label: 'Application Type', value: 'International' },
308
- { label: 'Product', value: 'HPP 5 years', isPrimary: true },
309
- { label: 'Property Value', value: '£500,000' },
310
- { label: 'Gross Finance Amount', value: '£325,000' },
311
- { label: 'LTV %', value: '95%', highlight: true, alert: true },
312
- { label: 'Purchase', value: 'View', link: true },
313
- { label: 'Overall Affordability', value: '£2,716', alert: true },
314
- { label: 'Monthly Repayment', value: '£3,771.85', alert: true, icon: 'pi pi-exclamation-triangle', inLabel: false },
315
- { label: 'Broker', value: 'Kishar Wallace-Cronin', isPrimary: true, rating: '5.0', icon: 'rating', isRating: true },
316
- { label: 'Direct Debit', value: 'Anthony. J. Cooper/ 404784/70872490', isPrimary: true },
317
- { label: 'Portfolio (#, Val,FTV)', value: '2, $420,000, 69.29%', isPrimary: true },
318
- { label: 'Solicitor', value: 'Kirkland & Ellis', isPrimary: true }
319
- ],
320
- viewAll: 'View All Details'
321
- },
322
- {
323
- title: 'Generic Widget Details',
324
- subtitle: {
325
- label: 'Status:',
326
- value: 'Pending',
327
- color: 'warning'
328
- },
329
- percentage: '50%',
330
- fields: [
331
- { label: 'Task ID', value: '00012345' },
332
- { label: 'Assigned To', value: 'John Doe' },
333
- { label: 'Task Type', value: 'Internal' },
334
- { label: 'Deadline', value: '20-10-2024' },
335
- { label: 'Priority', value: 'High', highlight: true },
336
- { label: 'Status', value: 'In Progress', alert: true },
337
- { label: 'Comments', value: 'Requires further review' },
338
- { label: 'Owner', value: 'Jane Smith' },
339
- { label: 'Approver', value: 'Alan Turing' }
340
- ],
341
- viewAll: 'View All Tasks'
342
- }
343
- ];
344
- const applicationWidgetList = [
345
- {
346
- title: 'Application Details',
347
- subtitle: {
348
- label: 'Risk Rating:',
349
- value: 'High',
350
- color: 'danger'
351
- },
352
- percentage: '80%',
353
- fields: [
354
- { label: 'Application ID | Submission Date', value: '00160750 | 04-10-2024' },
355
- { label: 'No of Applicants', value: '2' },
356
- { label: 'Application Type', value: 'International' },
357
- { label: 'Product', value: 'HPP 5 years', isPrimary: true },
358
- { label: 'Property Value', value: '£500,000' },
359
- { label: 'Gross Finance Amount', value: '£325,000' },
360
- { label: 'LTV %', value: '95%', highlight: true, alert: true },
361
- { label: 'Purchase', value: 'View', link: true },
362
- { label: 'Overall Affordability', value: '£2,716', alert: true },
363
- { label: 'Monthly Repayment', value: '£3,771.85', alert: true, icon: 'pi pi-exclamation-triangle', inLabel: false },
364
- { label: 'Broker', value: ' Kishar Wallace-Cronin', isPrimary: true, rating: '5.0', icon: 'rating', isRating: true },
365
- { label: 'Direct Debit', value: 'Anthony. J. Cooper/ 404784/70872490', isPrimary: true },
366
- { label: 'Portfolio (#, Val,FTV)', value: '2, $420,000,69.29%', isPrimary: true },
367
- { label: 'Solicitor', value: 'Kirkland & Ellis', isPrimary: true }
368
- ],
369
- viewAll: 'View All Details'
370
- }
371
- ];
372
- const applicantWidgetList = [
373
- {
374
- title: 'Applicant (Anthony J Cooper)',
375
- badge: 'Pending',
376
- badgeIcon: 'pi pi-clock',
377
- percentage: '80%',
378
- subtitle: {
379
- label: 'Risk Rating:',
380
- value: 'Medium',
381
- color: 'warning'
382
- },
383
- fields: [
384
- { label: 'Nationality | Residence', value: 'British | United Kingdom' },
385
- { label: 'Income', value: '£6,633', alert: true, isUnderline: true },
386
- { label: 'Affordability', value: '£2,133', alert: true, isUnderline: true },
387
- { label: 'Credit Score', value: '3| 350', icon: 'pi pi-exclamation-triangle', alert: true, isUnderline: true },
388
- { label: 'Dependents', value: '3' },
389
- { label: 'Portfolio | FTV', value: '£220,000 | 69.29%', link: true },
390
- { label: 'Employment Type | Industry', value: 'Full Time | Information Techno..' },
391
- { label: 'Documents', value: '4/6', alert: true, isUnderline: true },
392
- ],
393
- viewAll: 'View All Details'
394
- },
395
- {
396
- title: 'Applicant (Bella Henderson)',
397
- badge: 'Pending',
398
- badgeIcon: 'pi pi-clock',
399
- percentage: '80%',
400
- subtitle: {
401
- label: 'Risk Rating:',
402
- value: 'Low',
403
- color: 'success'
404
- },
405
- fields: [
406
- { label: 'Nationality | Residence', value: 'British | United Kingdom' },
407
- { label: 'Income', value: '£4,633', isUnderline: true, link: true },
408
- { label: 'Affordability', value: '£2,133', isUnderline: true },
409
- { label: 'Credit Score', value: '750', isUnderline: true },
410
- { label: 'Dependents', value: '3' },
411
- { label: 'Portfolio | FTV', value: '£200,000 | 69.29%', link: true },
412
- { label: 'Employment Type | Industry', value: 'Full Time | Information Techno..' },
413
- { label: 'Documents', value: '6/6', isUnderline: true },
414
- ],
415
- viewAll: 'View All Details'
416
- }
417
- ];
418
- const companyWidget = [
419
- {
420
- title: 'Property Info',
421
- badge: 'Pending',
422
- badgeIcon: 'pi pi-clock',
423
- percentage: '80%',
424
- riskRating: 'Medium',
425
- subtitle: {
426
- label: 'Risk Rating:',
427
- value: 'Medium',
428
- color: 'warning'
429
- },
430
- dataItems: [
431
- { key: 'Name', value: 'Prime Property Holdings Ltd', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
432
- { key: 'SIC Code', value: '64929', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
433
- { key: 'Registration Number', value: '09876543', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
434
- { key: 'Address', value: '123 Baker Street, London, W1U 6RQ', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
435
- { key: 'Date of Incorporation', value: '15th March 2018', style: "font-size: 14px; color: #0F1729; font-weight: 600;" },
436
- { key: 'Existing Mortgage', value: '2', alert: true, style: "font-size: 14px; color: #0F1729; font-weight: 600;" }
437
- ],
438
- viewAll: 'View All Details'
439
- },
440
- ];
441
- const propertyDetailsWidgetList = [
442
- {
443
- title: 'Property Details',
444
- badge: 'Verified',
445
- badgeIcon: 'pi pi-verified',
446
- percentage: '100%',
447
- subtitle: {
448
- label: 'Risk Rating:',
449
- value: 'Medium',
450
- color: 'warning',
451
- verified: true
452
- },
453
- fields: [
454
- { label: 'Type', value: 'Detached House' },
455
- { label: 'EPC', value: 'B (Rating: 83)' },
456
- { label: 'Tenure', value: 'Freehold' },
457
- { label: 'New Build', value: 'No' },
458
- { label: 'Address' },
459
- { label: '14 Wilimin Grove, Loughton, Milton Keynes MK5 8EU', isLabelLink: true, icon: 'pi pi-map-marker map-icon' },
460
- ],
461
- viewAll: 'View All Details'
462
- }
463
- ];
464
- const offerWidgetList = [
465
- {
466
- title: 'Offer',
467
- badge: 'Pending',
468
- badgeIcon: 'pi pi-clock',
469
- statusList: [
470
- { description: 'Application(HS) Condition was added on 10th Sep 2023', status: 'active' },
471
- { description: 'Property Condition was added on 10th Sep 2023', status: 'active' },
472
- { description: 'Mandate Approval Requested on 14th Sep 2024', status: 'pending' },
473
- { title: 'Waiting for Mandate Approval', description: 'Existing Mandate: 100,000', status: 'pending', textColor: '#FB392D' },
474
- { description: 'Generate Offer', status: 'pending' }
475
- ],
476
- viewAll: 'View All Details'
477
- }
478
- ];
479
- const valuationWidgetList = [
480
- {
481
- title: 'Valuation',
482
- badge: 'Pending',
483
- badgeIcon: 'pi pi-clock',
484
- statusList: [
485
- { description: 'Valuation Requested on 10th October 2024', status: 'active' },
486
- { description: 'Fees Paid £400 on 10th October 2024', status: 'active' },
487
- { description: 'Valuation Scheduled on 10th October 2024', status: 'active' },
488
- { title: 'Report Received on 13th October 2024', description: 'Value: £450,000.<br>Bedroom mismatch (3 vs. 2)<br>Valuation mismatch<br>(£450,000 vs. £500,000)', status: 'active', textColor: '#FB392D' },
489
- { description: 'PVQ Raised on 14th October 2024', status: 'active' },
490
- { description: 'PVQ Response received on 14th October 2024', status: 'active' },
491
- { description: 'Waiting for Valuation Report to be accepted', status: 'pending' }
492
- ]
493
- }
494
- ];
495
- const stageTimelineList = [
496
- { title: 'Application Review', description: 'Underwriter request identity documents from Applicant (Bella)', footerText: '14th Oct 2024 10:00 AM', isLast: false },
497
- { title: 'Underwriter Assigned', description: 'Valuation report received on 13th Oct 2024', footerText: '13th Oct 2024 10:00 AM', isLast: false },
498
- { title: 'Underwriter Assigned', description: 'Missing documents provided by Broker on 12th Oct 2024', footerText: '12th Oct 2024 10:00 AM', isLast: false },
499
- { title: 'Application Submitted', description: 'Application was Submitted on 10th Oct 2024 By Kishar Wallace-Cronin. Failed 6 out of 18 checks', footerText: '10th Oct 2024 10:00 AM', isLast: true },
500
- ];
501
- const saleHistoryTimelineList = [
502
- { floorArea: '196 sq m', propertyType: 'Detached , Freehold' },
503
- { floorArea: '136 sq m', propertyType: 'Detached , Freehold' },
504
- { floorArea: '136 sq m', propertyType: 'Detached , Freehold' }
505
- ];
506
- const navigationTimelineList = [
507
- { title: 'Alerts', status: 'active', textColor: '#FB392D' },
508
- { title: 'Information', status: 'pending' },
509
- ];
510
- const notesPanelList = [
511
- { title: 'Paul', date: '13-10-2024 03:00 PM', description: 'The lease, originally set for 75 years, has recently been extended to a 150-year term, pending confirmation from the legal team' },
512
- { title: 'System', date: '11-10-2024 03:00 PM', description: 'Additional Information was request' },
513
- { title: 'System', date: '10-10-2024 03:00 PM', description: 'Additional Document type Selfie was request' },
514
- { title: 'Paul', date: '10-10-2024 03:00 PM', description: 'Looks like valuation document is incorrect' }
515
- ];
516
- const rationalItems = [
517
- { title: 'Applicant (AC) Rationale', isOpen: true, status: 'Rejected' },
518
- { title: 'Affordability Rational', isOpen: true, status: 'Accepted' },
519
- { title: 'Finance', isOpen: false, status: 'Rejected' },
520
- { title: 'Income Source', isOpen: false, status: 'Accepted' },
521
- { title: 'Credit Conduct', isOpen: false, status: 'Rejected' },
522
- { title: 'Fraud Checks', isOpen: false, status: 'Accepted' }
523
- ];
524
- const rationalListItems = [
525
- { title: 'Applicant Rationale', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
526
- { title: 'Fraud Checks...', isOpen: true, data: '', status: 'Accepted', width: 'w-11' },
527
- { title: 'Credit Conduct', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
528
- { title: 'Finance Rationale', isOpen: true, data: '', status: 'Accepted', width: 'w-11' },
529
- { title: 'Income Source', isOpen: true, data: '', status: 'Rejected', width: 'w-11' },
530
- { title: 'Affordability Source', isOpen: true, data: '', status: 'Accepted', width: 'w-11' }
531
- ];
532
- const alertList = [
533
- "Payslip doesn't match with Bank statement",
534
- "Valuation Report shows value less than Property Value"
535
- ];
536
- const applicantAlertList = [
537
- "Payslip doesn't match with Bank statement",
538
- "Credit Score is low",
539
- "Valuation Report shows value less than Property Value"
540
- ];
541
- const applicationAlertList = [
542
- "LTV% exceeds maximum threshold of 95%",
543
- "Monthly Repayment of £3,771.85 exceeds affordability criteria",
544
- "Overall Affordability calculation shows £2,716 is beyond acceptable limits",
545
- "Income of £6,633 is insufficient for the requested loan amount",
546
- "Affordability of £2,133 is too low for loan approval",
547
- "Credit Score of 3|350 is below the minimum required score",
548
- "Valuation Report indicates property value of £450,000 which is less than the requested loan amount.",
549
- "Required documents not submitted: Pay slip, Tax Credits."
550
- ];
551
- const I2RAlert = [
552
- "Driver name and policy holder doesn't match."
553
- ];
554
- const commitments = [
555
- "Please provide details of your obligations/commitments.",
556
- "Here you can add and manage all finance details.",
557
- "If a residential finance/purchase plan has shared responsibility between more than 1 applicant, please only add once against a single applicant and provide details of the shared responsibility in the text box provided."
558
- ];
559
- const incomeDetailAlert = [
560
- 'If you receive income (excluding BTL portfolio income) that has not already been declared, please provide details below. ',
561
- "If you do not receive any other income, please do not complete any of the fields below and continue on to the next form.",
562
- ];
563
- const checkListStaticData = [
564
- { list: 'Pay slip', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
565
- { list: 'Rational', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
566
- { list: 'Document', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
567
- { list: 'Rational', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
568
- { list: 'Valuation', type: 'Property', date: '12/10/2024 15:53:43', status: '✔ Verified' },
569
- { list: 'Tax Credits', type: 'Applicant', date: '12/10/2024 15:53:43', status: '✔ Verified' },
570
- ];
571
294
  const actionHiddenHeaderList = ['apiEndPoint'];
572
295
  const actionList = [
573
296
  { action: 'Valuation Fee',
@@ -1103,7 +826,9 @@ class BaseListComponent {
1103
826
  this.builder = builder;
1104
827
  }
1105
828
  ngOnChanges() {
1106
- this.handleRefreshTable();
829
+ if (this.refreshTable) {
830
+ this.handleRefreshTable();
831
+ }
1107
832
  }
1108
833
  init() {
1109
834
  this.service.getAll().subscribe((res) => {
@@ -1735,11 +1460,11 @@ class TablePrimaryComponent {
1735
1460
  console.log('Delete Row:', rowData);
1736
1461
  }
1737
1462
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, deps: [{ token: i3$2.Router }], target: i0.ɵɵFactoryTarget.Component });
1738
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TablePrimaryComponent, isStandalone: true, selector: "lib-table-primary", inputs: { table: "table", title: "title", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton" }, ngImport: i0, template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ' + title + '...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3$5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3$5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3$5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: TooltipModule }] });
1463
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.4", type: TablePrimaryComponent, isStandalone: true, selector: "lib-table-primary", inputs: { table: "table", title: "title", showStatus: "showStatus", showActions: "showActions", showSearchBar: "showSearchBar", showNewRecordButton: "showNewRecordButton", showRefreshButton: "showRefreshButton" }, ngImport: i0, template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i3$5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i3$5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i3$5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2$2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i2$3.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: TooltipModule }] });
1739
1464
  }
1740
1465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImport: i0, type: TablePrimaryComponent, decorators: [{
1741
1466
  type: Component,
1742
- args: [{ selector: 'lib-table-primary', standalone: true, imports: [CommonModule, TableModule, ButtonModule, ToggleButtonModule, FormsModule, InputSwitchModule, InputTextModule, TooltipModule], template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ' + title + '...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"] }]
1467
+ args: [{ selector: 'lib-table-primary', standalone: true, imports: [CommonModule, TableModule, ButtonModule, ToggleButtonModule, FormsModule, InputSwitchModule, InputTextModule, TooltipModule], template: "<p-table #dt2 [columns]=\"table.headers\" class=\"table-primary-container\" [value]=\"table.records\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"table-header-wrapper flex align-items-center justify-content-between\">\r\n <h3 class=\"text-color table-title-wrapper text-color m-0\">{{title}}</h3>\r\n <div class=\"flex align-items-center justify-content-between w-full\">\r\n <div class=\"flex justify-content-end w-full\" *ngIf=\"showSearchBar\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"globalFilter\" (input)=\"dt2.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"'Search ...'\" class=\"search-input-wrapper w-4\" />\r\n <p-button icon=\"pi pi-cog\" class=\"setting-icon-wrapper ml-3\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Header Template -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr *ngIf=\"table.headers.length > 0\">\r\n <th *ngFor=\"let col of table.headers\" class=\"p-4\" [pSortableColumn]=\"col.name\" [ngClass]=\"col.width ? col.width : 'w-full'\">\r\n <h4 class=\"flex align-items-center table-header-title capitalize text-color font-semibold m-0\">\r\n {{ col.name }}\r\n <p-sortIcon [field]=\"col.name\" />\r\n </h4>\r\n </th>\r\n <th *ngIf=\"showActions\" class=\"table-action-title p-4\" [ngClass]=\"table.headers[0]?.width ? 'w-2' : 'w-full'\">\r\n <h4 class=\"text-color font-semibold table-header-title capitalize m-0\">Actions</h4></th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table Body -->\r\n <ng-template pTemplate=\"body\" let-rowData>\r\n <tr *ngIf=\"table.headers.length > 0\" class=\"table-row-wrapper relative table-group-wrapper\">\r\n <td class=\"text-left p-4\" *ngFor=\"let col of table.headers\">\r\n <div class=\"table-text-wrapper p-0\" \r\n [ngClass]=\"{\r\n 'enable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Enable',\r\n 'disable-badge-wrapper': col.name.toLowerCase() === 'status' && rowData[col.name] === 'Disable',\r\n 'w-8': col.name.toLowerCase() === 'status',\r\n 'text-primary font-semibold': col.name.toLowerCase() === 'action' || col.name.toLowerCase() === 'name'\r\n }\"\r\n >\r\n {{ rowData[col.name] }}\r\n <p *ngIf=\"col.name.toLowerCase() === 'action'\" class=\"text-color font-normal\">{{rowData['apiEndPoint']}}</p>\r\n </div>\r\n </td>\r\n\r\n <!-- Actions -->\r\n <td *ngIf=\"showActions\" class=\"action-data-wrapper text-left p-4\">\r\n <div class=\"flex align-items-center\">\r\n <p-button icon=\"pi pi-pencil\" (click)=\"handleEditClick(rowData._id)\" class=\"edit-icon-wrapper mr-3\"></p-button>\r\n <p-button icon=\"pi pi-trash\" (click)=\"deleteRow(rowData)\" class=\"delete-icon-wrapper mr-3\"></p-button>\r\n </div>\r\n </td>\r\n <p-button icon=\"pi pi-eye\" (click)=\"viewRow(rowData)\" class=\"view-icon-wrapper icon-position-wrapper table-group-wrapper-hover:visible\"></p-button>\r\n </tr>\r\n </ng-template>\r\n</p-table>", styles: [".table-header-container{padding:20px 20px 20px 8px}.table-header-title{font-size:14px}.table-text-wrapper{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;max-width:100%;padding:.5rem;box-sizing:border-box}.table-title-wrapper{font-size:20px;font-weight:700}.table-action-title{border-radius:0 10px 0 0;border-right:1px solid rgba(68,72,109,.1)!important}.action-data-wrapper{border-right:1px solid rgba(68,72,109,.1)!important}.enable-badge-wrapper{border-radius:4px;background:var(--green-500);color:var(--surface-0);text-align:center;padding:5px!important}.disable-badge-wrapper{border-radius:4px;background:#44486d;color:var(--surface-0);text-align:center;padding:5px!important}.search-input-wrapper{height:50px;border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#4c62920a}.table-row-wrapper{position:relative;transition:all .3s ease-in-out}.icon-position-wrapper{position:absolute;top:50%;left:16%;transform:translate(-50%,-50%);opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.table-row-wrapper:hover .icon-position-wrapper{opacity:1;visibility:visible}.table-group-wrapper:hover .icon-position-wrapper{visibility:visible;opacity:1}::ng-deep .edit-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .edit-icon-wrapper .p-button .pi-pencil{color:var(--primary-color)}::ng-deep .delete-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:12px 20px}::ng-deep .delete-icon-wrapper .p-button .pi-trash{color:var(--red-500)}::ng-deep .setting-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.1);background:#eef0f5;padding:24px;height:50px}::ng-deep .setting-icon-wrapper .p-button .pi-cog{color:var(--primary-color)}::ng-deep .view-icon-wrapper .p-button{border-radius:10px;border:1px solid rgba(76,98,146,.3);background:var(--surface-0);padding:20px;height:40px;box-shadow:none}::ng-deep .view-icon-wrapper .p-button .pi-eye{color:#44486d}::ng-deep .table-primary-container .p-datatable-table{min-width:50rem;padding:20px;background-color:#fff;table-layout:fixed}::ng-deep .table-primary-container .p-datatable-header{padding:20px 20px 0;border-radius:10px 10px 0 0!important;border:none!important}::ng-deep .table-primary-container .p-datatable-thead th{border:1px solid rgba(68,72,109,.1);border-left:none;border-right:none;background:#f9f9fa}::ng-deep .table-primary-container .p-datatable-thead th:first-child{border-radius:10px 0 0;border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td{border-bottom:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr td:first-child{border-left:1px solid rgba(68,72,109,.1)}::ng-deep .table-primary-container tr:last-child td:first-child{border-radius:0 0 0 10px}::ng-deep .table-primary-container tr:last-child td:last-child{border-radius:0 0 10px}\n"] }]
1743
1468
  }], ctorParameters: () => [{ type: i3$2.Router }], propDecorators: { table: [{
1744
1469
  type: Input
1745
1470
  }], title: [{
@@ -2074,6 +1799,7 @@ class WidgetAdminListComponent extends BaseListComponent {
2074
1799
  constructor(widgetAdminService, tableBuilder) {
2075
1800
  super(widgetAdminService, tableBuilder);
2076
1801
  this.tableBuilder = tableBuilder;
1802
+ this.tableBuilder.hiddenHeaders = widgetHiddenHeaderList;
2077
1803
  }
2078
1804
  ngOnInit() {
2079
1805
  this.init();
@@ -2273,6 +1999,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.4", ngImpor
2273
1999
  args: [{ providedIn: 'root' }]
2274
2000
  }], ctorParameters: () => [{ type: AdminActionStore }, { type: i1$1.HttpClient }, { type: AppConfigService }, { type: ListService }] });
2275
2001
 
2002
+ /**
2003
+ * Admin Action List Component
2004
+ */
2276
2005
  class AdminActionListComponent extends BaseListComponent {
2277
2006
  tableBuilder;
2278
2007
  constructor(service, tableBuilder) {