{"version":3,"file":"cloud-ide-front-desk.mjs","sources":["../../../projects/cloud-ide-front-desk/src/lib/cloud-ide-front-desk.component.ts","../../../projects/cloud-ide-front-desk/src/lib/cloud-ide-front-desk.service.ts","../../../projects/cloud-ide-front-desk/src/lib/cloud-ide-front-desk.routes.ts","../../../projects/cloud-ide-front-desk/src/lib/collection/lead-config-management/services/lead-config.service.ts","../../../projects/cloud-ide-front-desk/src/lib/collection/lead-config-management/components/lead-config-create/lead-config-create.component.ts","../../../projects/cloud-ide-front-desk/src/lib/collection/lead-config-management/components/lead-config-list/lead-config-list.component.ts","../../../projects/cloud-ide-front-desk/src/lib/collection/lead-config-management/index.ts","../../../projects/cloud-ide-front-desk/src/lib/collection/index.ts","../../../projects/cloud-ide-front-desk/src/public-api.ts","../../../projects/cloud-ide-front-desk/src/cloud-ide-front-desk.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n  selector: 'cide-fdsk-wrapper',\r\n  standalone: true,\r\n  template: `\r\n    <div class=\"front-desk-wrapper\">\r\n      <router-outlet></router-outlet>\r\n    </div>\r\n  `,\r\n  styles: [`\r\n    .front-desk-wrapper {\r\n      @apply tw-w-full tw-h-full;\r\n    }\r\n    \r\n    :host {\r\n      @apply tw-w-full tw-h-full tw-flex tw-flex-col;\r\n    }\r\n  `],\r\n  imports: [RouterOutlet]\r\n})\r\nexport class CloudIdeFrontDeskComponent {\r\n\r\n}\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class CloudIdeFrontDeskService {\r\n\r\n  constructor() { }\r\n}\r\n\r\n\r\n\r\n","import {  Routes } from '@angular/router';\r\nimport { authGuard } from 'cloud-ide-shared';\r\n\r\nexport const frontdeskRoutes: Routes = [\r\n  {\r\n    path: 'lead-config',\r\n    loadComponent: () => import('./collection/lead-config-management/components/lead-config-list/lead-config-list.component').then(m => m.LeadConfigListComponent),\r\n    title: 'Lead Configuration Management',\r\n    // canActivate: [authGuard],\r\n    data: {\r\n      reuseTab: true,\r\n      sypg_page_code: \"fdsk_lead_config_list\"\r\n    }\r\n  },\r\n  {\r\n    path: 'lead-config/create',\r\n    loadComponent: () => import('./collection/lead-config-management/components/lead-config-create/lead-config-create.component').then(m => m.LeadConfigCreateComponent),\r\n    title: 'Create Lead Configuration',\r\n    // canActivate: [authGuard],\r\n    data: {\r\n      reuseTab: true,\r\n      sypg_page_code: \"fdsk_lead_config_create\"\r\n    }\r\n  },\r\n  {\r\n    path: 'lead-config/edit/:id',\r\n    loadComponent: () => import('./collection/lead-config-management/components/lead-config-create/lead-config-create.component').then(m => m.LeadConfigCreateComponent),\r\n    title: 'Edit Lead Configuration',\r\n    // canActivate: [authGuard],\r\n    data: {\r\n      reuseTab: true,\r\n      sypg_page_code: \"fdsk_lead_config_edit\"\r\n    }\r\n  }\r\n];\r\n\r\n\r\n\r\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport {\n  cidePath,\n  hostManagerRoutesUrl,\n  frontdeskRoutesUrl,\n  generateObjectFromString,\n  generateStringFromObject\n} from 'cloud-ide-lms-model';\nimport {\n  type LeadConfigListResponse,\n  type FdskLeadConfigMaster,\n  type LeadConfigCreateUpdatePayload,\n  type LeadConfigDeletePayload,\n  type LeadConfigToggleStatusPayload,\n  type MLeadConfig\n} from '../interfaces/lead-config.interface';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CideFdskLeadConfigService {\n  private readonly http = inject(HttpClient);\n\n  /**\n   * Get list of lead configurations\n   * @param payload - Query parameters for filtering/pagination (matches MFdskLeads structure)\n   * @returns Observable of lead config list response\n   */\n  getLeadConfigList(payload: MLeadConfig): Observable<LeadConfigListResponse> {\n    // Convert payload object to query string using generateObjectFromString\n    const queryString = generateStringFromObject(payload);\n    const url = cidePath.join([\n      hostManagerRoutesUrl.cideSuiteHost,\n      frontdeskRoutesUrl?.module,\n      frontdeskRoutesUrl.leadConfigMaster, // Use the actual route from backend\n      queryString\n    ]);\n\n    return this.http.get<LeadConfigListResponse>(url);\n  }\n\n  /**\n   * Get lead configuration by ID\n   * @param payload - Lead config ID payload\n   * @returns Observable of lead config data\n   */\n  getLeadConfigById(payload: { fdlcm_id: string }): Observable<{ success: boolean; data: FdskLeadConfigMaster; message: string }> {\n    const url = cidePath.join([\n      hostManagerRoutesUrl.cideSuiteHost,\n      frontdeskRoutesUrl?.module,\n      frontdeskRoutesUrl.leadConfigMaster,\n      'by-id',\n      payload.fdlcm_id\n    ]);\n\n    return this.http.get<{ success: boolean; data: FdskLeadConfigMaster; message: string }>(url);\n  }\n\n  /**\n   * Create new lead configuration\n   * @param payload - Lead config creation payload\n   * @returns Observable of created lead config\n   */\n  createLeadConfig(payload: LeadConfigCreateUpdatePayload): Observable<{ success: boolean; data: FdskLeadConfigMaster; message: string }> {\n    const url = cidePath.join([\n      hostManagerRoutesUrl.cideSuiteHost,\n      frontdeskRoutesUrl?.module,\n      frontdeskRoutesUrl.leadConfigMaster,\n    ]);\n\n    return this.http.post<{ success: boolean; data: FdskLeadConfigMaster; message: string }>(url, payload);\n  }\n\n  /**\n   * Update existing lead configuration\n   * @param payload - Lead config update payload with ID\n   * @returns Observable of updated lead config\n   */\n  updateLeadConfig(payload: LeadConfigCreateUpdatePayload & { fdlcm_id: string }): Observable<{ success: boolean; data: FdskLeadConfigMaster; message: string }> {\n    const url = cidePath.join([\n      hostManagerRoutesUrl.cideSuiteHost,\n      frontdeskRoutesUrl?.module,\n      frontdeskRoutesUrl.leadConfigMaster,\n    ]);\n\n    const { fdlcm_id, ...updateData } = payload;\n    return this.http.post<{ success: boolean; data: FdskLeadConfigMaster; message: string }>(url, {\n      ...updateData,\n      _id: fdlcm_id\n    });\n  }\n\n  /**\n   * Delete lead configuration\n   * @param payload - Lead config delete payload\n   * @returns Observable of deletion result\n   */\n  deleteLeadConfig(payload: LeadConfigDeletePayload): Observable<{ success: boolean; message: string }> {\n    const url = cidePath.join([\n      hostManagerRoutesUrl.cideSuiteHost,\n      frontdeskRoutesUrl?.module,\n      frontdeskRoutesUrl.leadConfigMaster,\n      payload.fdlcm_id\n    ]);\n\n    return this.http.delete<{ success: boolean; message: string }>(url);\n  }\n\n  /**\n   * Toggle lead configuration active status\n   * @param payload - Lead config toggle status payload\n   * @returns Observable of toggle result\n   */\n  toggleLeadConfigStatus(payload: LeadConfigToggleStatusPayload): Observable<{ success: boolean; data: FdskLeadConfigMaster; message: string }> {\n    // Use the update method to toggle status\n    return this.updateLeadConfig({\n      fdlcm_id: payload.fdlcm_id,\n      fdlcm_isactive: payload.fdlcm_isactive,\n      fdlcm_title: '', // These will be filled from existing data\n      fdlcm_description: '',\n      fdlcm_lead_created_for_id_sygms: '',\n      fdlcm_defalut_priority_id_sygms: '',\n      fdlcm_form_endpoint: '',\n      fdlcm_default_counselor_id_user: '',\n      fdlcm_start_date_time: new Date()\n    });\n  }\n\n  /**\n   * Get active lead configurations\n   * @returns Observable of active lead configs\n   */\n  getActiveLeadConfigs(): Observable<LeadConfigListResponse> {\n    return this.getLeadConfigList({\n      pageIndex: 1,\n      pageSize: 100,\n      query: '',\n      pagination: true,\n      sort: {\n        order: 'asc',\n        key: 'fdlcm_title'\n      },\n      filters: {\n        fdlcm_isactive: true\n      }\n    });\n  }\n}\n","import { Component, OnInit, OnDestroy, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CideEleButtonComponent, CideIconComponent, CideSelectComponent, CideTextareaComponent } from 'cloud-ide-element';\nimport { CideLytSharedWrapperComponent } from 'cloud-ide-layout';\nimport { CideInputComponent } from 'cloud-ide-element';\nimport { CideCoreGeneralMasterService, USER_SERVICE_TOKEN, IUserMasterService } from 'cloud-ide-shared';\nimport { CideFdskLeadConfigService } from '../../services/lead-config.service';\nimport { \n  LeadConfigCreateUpdatePayload \n} from '../../interfaces/lead-config.interface';\nimport { \n  ICoreSygms,\n  AuthUserMst,\n  IGeneralMasterListRequest,\n  AuthUserMstListPayload\n} from 'cloud-ide-lms-model';\n\n@Component({\n  selector: 'cide-fdsk-lead-config-create',\n  standalone: true,\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    CideInputComponent,\n    CideEleButtonComponent,\n    CideIconComponent,\n    CideSelectComponent,\n    CideTextareaComponent,\n    CideLytSharedWrapperComponent\n  ],\n  template: `\n    <cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"shared_wrapper_setup_param\">\n      <!-- Lead Configuration Form -->\n      <div class=\"tw-w-full tw-h-full\">\n        <form class=\"tw-w-full tw-table tw-h-full tw-bg-transparent\" [formGroup]=\"leadConfigForm\"\n          [class.tw-opacity-60]=\"loading()\" (ngSubmit)=\"onSubmit()\">\n\n          <!-- Form Content -->\n          <div class=\"tw-table-row\">\n            <div class=\"tw-table-cell tw-w-full tw-px-6 tw-py-6\">\n              <div class=\"tw-transition-opacity tw-duration-300\" [class.tw-opacity-60]=\"loading()\">\n                <!-- Form Fields -->\n                <div class=\"tw-space-y-6\">\n                  <!-- Title and Endpoint -->\n                  <div class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n                    <cide-ele-input label=\"Configuration Title\" formControlName=\"fdlcm_title\"\n                      placeholder=\"e.g., Website Lead Form\" id=\"fdlcm_title\" size=\"md\" leadingIcon=\"assignment\">\n                    </cide-ele-input>\n\n                    <cide-ele-input label=\"Form Endpoint\" id=\"fdlcm_form_endpoint\" formControlName=\"fdlcm_form_endpoint\"\n                      placeholder=\"e.g., /api/leads/submit\" size=\"md\" leadingIcon=\"link\">\n                    </cide-ele-input>\n                  </div>\n\n                  <!-- Description -->\n                  <cide-ele-textarea label=\"Description\" class=\"tw-mt-2\" formControlName=\"fdlcm_description\" \n                    placeholder=\"Describe the purpose of this lead configuration...\"\n                    rows=\"5\" size=\"md\">\n                  </cide-ele-textarea>\n\n                  <!-- Dropdowns -->\n                  <div class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n                    <cide-ele-select label=\"Lead Created For\" formControlName=\"fdlcm_lead_created_for_id_sygms\" \n                      placeholder=\"Select entity\" valueKey=\"value\" labelKey=\"label\" [options]=\"leadCreatedForOptions()\">\n                    </cide-ele-select>\n\n                    <cide-ele-select label=\"Default Priority\" formControlName=\"fdlcm_defalut_priority_id_sygms\" \n                      placeholder=\"Select priority\" valueKey=\"value\" labelKey=\"label\" [options]=\"priorityOptions()\">\n                    </cide-ele-select>\n                  </div>\n\n                  <!-- Counselor -->\n                  <div class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n                    <cide-ele-select label=\"Default Counselor\" formControlName=\"fdlcm_default_counselor_id_user\" \n                      placeholder=\"Select counselor\" valueKey=\"value\" labelKey=\"label\" [options]=\"counselorOptions()\">\n                    </cide-ele-select>\n                  </div>\n\n                  <!-- Date Range -->\n                  <div class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6\">\n                    <cide-ele-input label=\"Start Date & Time\"id=\"fdlcm_start_date_time\"  formControlName=\"fdlcm_start_date_time\"\n                      type=\"datetime-local\" size=\"md\" leadingIcon=\"schedule\">\n                    </cide-ele-input>\n\n                    <cide-ele-input label=\"End Date & Time\" id=\"fdlcm_end_date_time\" formControlName=\"fdlcm_end_date_time\"\n                      type=\"datetime-local\" size=\"md\" leadingIcon=\"schedule\">\n                    </cide-ele-input>\n                  </div>\n\n                  <!-- Active Status -->\n                  <div class=\"tw-flex tw-items-center tw-gap-3 tw-p-4 tw-bg-gray-50 tw-rounded-lg tw-border tw-border-gray-200 tw-cursor-pointer hover:tw-bg-gray-100 tw-transition-colors tw-duration-200\" \n                       (click)=\"toggleActiveStatus()\">\n                    <cide-ele-input formControlName=\"fdlcm_isactive\" type=\"checkbox\" size=\"md\" \n                                   (click)=\"$event.stopPropagation()\">\n                    </cide-ele-input>\n                    <div class=\"tw-flex tw-flex-col\">\n                      <span class=\"tw-text-sm tw-font-medium tw-text-gray-700\">Active</span>\n                      <span class=\"tw-text-xs tw-text-gray-500\">Enable/disable this lead configuration</span>\n                    </div>\n                  </div>\n                </div>\n              </div>\n\n              <!-- Error Display -->\n              @if (error()) {\n              <div class=\"tw-mt-6 tw-p-4 tw-bg-red-50 tw-border tw-border-red-200 tw-rounded-lg\">\n                <div class=\"tw-flex tw-items-center tw-gap-2\">\n                  <cide-ele-icon variant=\"red\" size=\"sm\">error</cide-ele-icon>\n                  <span class=\"tw-text-sm tw-font-medium tw-text-red-800\">{{ error() }}</span>\n                </div>\n              </div>\n              }\n            </div>\n          </div>\n\n          <!-- Form Actions -->\n          <div class=\"tw-table-row tw-h-0\">\n            <div class=\"tw-table-cell tw-w-full tw-px-6 tw-py-2 tw-bg-gray-50 tw-border-t tw-border-gray-200\">\n              <div class=\"tw-flex tw-justify-end tw-gap-4\">\n                <button cideEleButton type=\"button\" variant=\"secondary\" (click)=\"resetForm()\" leftIcon=\"refresh\"\n                  [disabled]=\"loading()\">\n                  Reset Form\n                </button>\n\n                <button cideEleButton type=\"button\" variant=\"secondary\" (click)=\"cancelForm()\" leftIcon=\"close\"\n                  [disabled]=\"loading()\">\n                  Cancel\n                </button>\n\n                <button cideEleButton type=\"submit\" variant=\"primary\" [disabled]=\"loading() || leadConfigForm.invalid\"\n                  [loading]=\"loading()\" leftIcon=\"save\">\n                  {{ isEditMode() ? 'Update Lead Config' : 'Create Lead Config' }}\n                </button>\n              </div>\n            </div>\n          </div>\n        </form>\n      </div>\n    </cide-lyt-shared-wrapper>\n  `,\n  styles: [`\n    :host {\n      @apply tw-w-full tw-h-full tw-flex tw-flex-col;\n    }\n  `]\n})\nexport class LeadConfigCreateComponent implements OnInit, OnDestroy {\n  // Shared wrapper setup param for page code\n  shared_wrapper_setup_param = { sypg_page_code: \"fdsk_lead_config_create\" };\n\n  // Dependency injection\n  private readonly destroyRef = inject(DestroyRef);\n  private leadConfigService = inject(CideFdskLeadConfigService);\n  private generalMasterService = inject(CideCoreGeneralMasterService);\n  private userMasterService = inject(USER_SERVICE_TOKEN) as IUserMasterService;\n  private router = inject(Router);\n  private route = inject(ActivatedRoute);\n  private fb = inject(FormBuilder);\n\n  // Signals for reactive state management\n  loading = signal(false);\n  error = signal<string | null>(null);\n  isEditMode = signal(false);\n  leadConfigId = signal<string | null>(null);\n\n  // Dropdown options signals\n  leadCreatedForOptions = signal<{ value: string; label: string }[]>([]);\n  priorityOptions = signal<{ value: string; label: string }[]>([]);\n  counselorOptions = signal<{ value: string; label: string }[]>([]);\n\n  // Form\n  leadConfigForm!: FormGroup;\n\n  ngOnInit(): void {\n    // Initialize form\n    this.leadConfigForm = this.fb.group({\n      fdlcm_title: ['', [Validators.required, Validators.maxLength(200)]],\n      fdlcm_description: ['', [Validators.required, Validators.maxLength(500)]],\n      fdlcm_lead_created_for_id_sygms: ['', Validators.required],\n      fdlcm_defalut_priority_id_sygms: ['', Validators.required],\n      fdlcm_form_endpoint: ['', [Validators.required, Validators.maxLength(50)]],\n      fdlcm_default_counselor_id_user: ['', Validators.required],\n      fdlcm_isactive: [true],\n      fdlcm_start_date_time: ['', Validators.required],\n      fdlcm_end_date_time: ['']\n    });\n\n    // Load dropdown data\n    this.loadDropdownData();\n\n    // Check if we're in edit mode\n    const id = this.route.snapshot.paramMap.get('id');\n    if (id) {\n      this.isEditMode.set(true);\n      this.leadConfigId.set(id);\n      this.loadLeadConfig(id);\n    } else {\n      // Set default start date to current time\n      const now = new Date();\n      now.setMinutes(now.getMinutes() - now.getTimezoneOffset());\n      this.leadConfigForm.patchValue({\n        fdlcm_start_date_time: now.toISOString().slice(0, 16)\n      });\n    }\n  }\n\n  ngOnDestroy(): void {\n    // Cleanup handled by takeUntilDestroyed\n  }\n\n  /**\n   * Load all dropdown data\n   */\n  private loadDropdownData(): void {\n    this.loadPriorityOptions();\n    this.loadLeadCreatedForOptions();\n    this.loadCounselorOptions();\n  }\n\n  /**\n   * Load priority options from lead_config_priority general master\n   */\n  private loadPriorityOptions(): void {\n    console.log('🔍 Loading priority options from lead_config_priority...');\n    \n    // Call getMasterList directly with sygms_code filter\n    const payload: IGeneralMasterListRequest = {\n      sygmt_code: 'lead_config_priority'\n    };\n    \n    this.generalMasterService.getMasterList(payload)\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (response: any) => {\n          if (response.success && response.data) {\n            console.log('✅ Priority options loaded:', response.data);\n            const options = response.data.map((master: ICoreSygms) => ({\n              value: master._id,\n              label: master.sygms_title\n            }));\n            this.priorityOptions.set(options);\n          } else {\n            console.warn('⚠️ No priority options found');\n            this.priorityOptions.set([]);\n          }\n        },\n        error: (error) => {\n          console.error('❌ Error loading priority options:', error);\n          this.priorityOptions.set([]);\n        }\n      });\n  }\n\n  /**\n   * Load lead created for options from lead_config_for general master\n   */\n  private loadLeadCreatedForOptions(): void {\n    console.log('🔍 Loading lead created for options from lead_config_for...');\n    \n    // Call getMasterList directly with sygms_code filter\n    const payload: IGeneralMasterListRequest = {\n      sygmt_code: 'lead_config_for'\n    };\n    \n    this.generalMasterService.getMasterList(payload)\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (response: any) => {\n          if (response.success && response.data) {\n            console.log('✅ Lead created for options loaded:', response.data);\n            const options = response.data.map((master: ICoreSygms) => ({\n              value: master._id,\n              label: master.sygms_title\n            }));\n                      this.leadCreatedForOptions.set(options);\n          } else {\n            console.warn('⚠️ No lead created for options found');\n            this.leadCreatedForOptions.set([]);\n          }\n        },\n        error: (error) => {\n          console.error('❌ Error loading lead created for options:', error);\n          this.leadCreatedForOptions.set([]);\n        }\n      });\n  }\n\n  /**\n   * Load counselor options from users list\n   */\n  private loadCounselorOptions(): void {\n    console.log('🔍 Loading counselor options from users...');\n    \n    // Create payload for user list API call\n    const payload: AuthUserMstListPayload = {\n      pageIndex: 1,\n      pageSize: 100, // Get more users for counselor selection\n      query: '',\n      pagination: true,\n      sort: {\n        order: 'asc',\n        key: 'user_fullname'\n      }\n    };\n    \n    this.userMasterService.getUserList(payload)\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (response: any) => {\n          if (response.success && response.data) {\n            console.log('✅ Counselor options loaded:', response.data);\n            const options = response.data.map((user: AuthUserMst) => ({\n              value: user._id,\n              label: user.user_fullname || `${user.user_firstname} ${user.user_lastname}`}));\n            this.counselorOptions.set(options);\n          } else {\n            console.warn('⚠️ No counselor options found');\n            this.counselorOptions.set([]);\n          }\n        },\n        error: (error) => {\n          console.error('❌ Error loading counselor options:', error);\n          this.counselorOptions.set([]);\n        }\n      });\n  }\n\n  /**\n   * Load lead configuration for editing\n   */\n  private loadLeadConfig(id: string): void {\n    this.loading.set(true);\n    this.error.set(null);\n\n    // For now, use dummy data\n    const dummyData = {\n      fdlcm_title: 'Website Lead Form',\n      fdlcm_description: 'Lead capture form for website visitors',\n      fdlcm_lead_created_for_id_sygms: 'entity-1',\n      fdlcm_defalut_priority_id_sygms: 'priority-2',\n      fdlcm_form_endpoint: '/api/leads/submit',\n      fdlcm_default_counselor_id_user: 'counselor-1',\n      fdlcm_isactive: true,\n      fdlcm_start_date_time: '2024-01-01T09:00',\n      fdlcm_end_date_time: '2024-12-31T18:00'\n    };\n\n    this.leadConfigForm.patchValue(dummyData);\n    this.loading.set(false);\n  }\n\n  /**\n   * Submit form\n   */\n  onSubmit(): void {\n    if (this.leadConfigForm.valid) {\n      this.loading.set(true);\n      this.error.set(null);\n\n      const formData = this.leadConfigForm.value;\n      const payload: LeadConfigCreateUpdatePayload = {\n        fdlcm_title: formData.fdlcm_title,\n        fdlcm_description: formData.fdlcm_description,\n        fdlcm_lead_created_for_id_sygms: formData.fdlcm_lead_created_for_id_sygms,\n        fdlcm_defalut_priority_id_sygms: formData.fdlcm_defalut_priority_id_sygms,\n        fdlcm_form_endpoint: formData.fdlcm_form_endpoint,\n        fdlcm_default_counselor_id_user: formData.fdlcm_default_counselor_id_user,\n        fdlcm_isactive: formData.fdlcm_isactive,\n        fdlcm_start_date_time: formData.fdlcm_start_date_time,\n        fdlcm_end_date_time: formData.fdlcm_end_date_time\n      };\n\n      // For now, simulate API call with dummy data\n      setTimeout(() => {\n        console.log(`✅ Lead config ${this.isEditMode() ? 'updated' : 'created'} successfully`);\n        this.router.navigate(['/control-panel/lead-config']);\n        this.loading.set(false);\n      }, 1000);\n    }\n  }\n\n  /**\n   * Toggle active status\n   */\n  toggleActiveStatus(): void {\n    const currentValue = this.leadConfigForm.get('fdlcm_isactive')?.value;\n    this.leadConfigForm.patchValue({ fdlcm_isactive: !currentValue });\n  }\n\n  /**\n   * Reset form\n   */\n  resetForm(): void {\n    this.leadConfigForm.reset();\n    this.leadConfigForm.patchValue({ fdlcm_isactive: true });\n  }\n\n  /**\n   * Cancel form\n   */\n  cancelForm(): void {\n    this.router.navigate(['/control-panel/lead-config']);\n  }\n}\n","import { Component, OnInit, OnDestroy, inject, signal, computed, viewChild, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DestroyRef } from '@angular/core';\nimport {\n  CideIconComponent, CideEleButtonComponent, CideEleDropdownComponent,\n  TemplateContext, DropdownItem\n} from 'cloud-ide-element';\nimport { CideEleDataGridComponent } from 'cloud-ide-element';\nimport { CideLytSharedWrapperComponent } from 'cloud-ide-layout';\nimport { CideCoreGeneralMasterTypeService, CideCoreGeneralMasterService } from 'cloud-ide-shared';\nimport { CideFdskLeadConfigService } from '../../services/lead-config.service';\nimport {\n  FdskLeadConfigMaster,\n  ICoreSygmt,\n  ICoreSygms\n} from 'cloud-ide-lms-model';\n\n@Component({\n  selector: 'cide-fdsk-lead-config-list',\n  standalone: true,\n  imports: [\n    CommonModule,\n    FormsModule,\n    CideIconComponent,\n    CideEleButtonComponent,\n    CideEleDataGridComponent,\n    CideEleDropdownComponent,\n    CideLytSharedWrapperComponent\n  ],\n  template: `\n    <cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"shared_wrapper_setup_param\">\n      <!-- Data Grid Section -->\n      <div class=\"tw-w-full tw-h-full\">\n        <cide-ele-data-grid\n          [config]=\"gridConfig()\"\n          [templateRenderers]=\"templateRenderers()\"\n          (gridEvent)=\"onGridEvent($event)\">\n        </cide-ele-data-grid>\n      </div>\n\n      <!-- Breadcrumb Right Template -->\n      <div breadcrumb-actions>\n        <button cideEleButton variant=\"primary\" size=\"xs\" leftIcon=\"add\" (click)=\"createNewLeadConfig()\">\n          Create Lead Config\n        </button>\n      </div>\n\n      <!-- Template Renderers -->\n      <ng-template #leadConfigDetailsRendererTemplate let-value=\"value\" let-row=\"row\" let-column=\"column\">\n        <div class=\"tw-flex tw-items-center tw-space-x-3\">\n          <div class=\"tw-flex-shrink-0\">\n            <div class=\"tw-w-10 tw-h-10 tw-bg-blue-100 tw-rounded-lg tw-flex tw-items-center tw-justify-center\">\n              <cide-ele-icon class=\"tw-text-blue-600 tw-w-5 tw-h-5\">{{ getLeadConfigIcon(row?.fdlcm_title) }}</cide-ele-icon>\n            </div>\n          </div>\n          <div class=\"tw-min-w-0 tw-flex-1\">\n            <h6 class=\"tw-text-sm tw-font-semibold tw-text-gray-900 tw-truncate tw-m-0\">\n              {{ row?.fdlcm_title }}\n            </h6>\n            <p class=\"tw-text-xs tw-text-gray-500 tw-truncate tw-m-0\">\n              {{ row?.fdlcm_description }}\n            </p>\n          </div>\n        </div>\n      </ng-template>\n\n      <ng-template #leadConfigStatusRendererTemplate let-value=\"value\" let-row=\"row\" let-column=\"column\">\n        <div class=\"tw-flex tw-items-center tw-space-x-2\">\n          <span [ngClass]=\"{\n            'tw-bg-green-100 tw-text-green-800': row?.fdlcm_isactive,\n            'tw-bg-red-100 tw-text-red-800': !row?.fdlcm_isactive\n          }\" class=\"tw-inline-flex tw-items-center tw-px-2 tw-py-1 tw-rounded-full tw-text-xs tw-font-medium\">\n            <cide-ele-icon [ngClass]=\"{\n              'tw-text-green-600': row?.fdlcm_isactive,\n              'tw-text-red-600': !row?.fdlcm_isactive\n            }\" class=\"tw-w-3 tw-h-3 tw-mr-2\">\n              {{ row?.fdlcm_isactive ? 'check_circle' : 'cancel' }}\n            </cide-ele-icon>\n            {{ row?.fdlcm_isactive ? 'Active' : 'Inactive' }}\n          </span>\n        </div>\n      </ng-template>\n\n      <ng-template #leadConfigDatesRendererTemplate let-value=\"value\" let-row=\"row\" let-column=\"column\">\n        <div class=\"tw-flex tw-flex-col tw-space-y-1\">\n          <div class=\"tw-text-xs tw-text-gray-600\">\n            <span class=\"tw-font-medium tw-text-gray-700\">From:</span>\n            {{ row?.fdlcm_start_date_time | date:'MMM dd, yyyy' }}\n          </div>\n          @if (row?.fdlcm_end_date_time) {\n          <div class=\"tw-text-xs tw-text-gray-600\">\n            <span class=\"tw-font-medium tw-text-gray-700\">To:</span>\n            {{ row?.fdlcm_end_date_time | date:'MMM dd, yyyy' }}\n          </div>\n          }\n        </div>\n      </ng-template>\n\n      <ng-template #leadConfigPriorityRendererTemplate let-value=\"value\" let-row=\"row\" let-column=\"column\">\n        <div class=\"tw-flex tw-items-center tw-justify-center\">\n          <span [ngClass]=\"{\n            'tw-bg-red-100 tw-text-red-800': row?.fdlcm_defalut_priority_id_sygms === 'priority-1',\n            'tw-bg-yellow-100 tw-text-yellow-800': row?.fdlcm_defalut_priority_id_sygms === 'priority-2',\n            'tw-bg-green-100 tw-text-green-800': row?.fdlcm_defalut_priority_id_sygms === 'priority-3'\n          }\" class=\"tw-inline-flex tw-items-center tw-px-2 tw-py-1 tw-rounded-full tw-text-xs tw-font-medium\">\n            <cide-ele-icon [ngClass]=\"{\n              'tw-text-red-600': row?.fdlcm_defalut_priority_id_sygms === 'priority-1',\n              'tw-text-yellow-600': row?.fdlcm_defalut_priority_id_sygms === 'priority-2',\n              'tw-text-green-600': row?.fdlcm_defalut_priority_id_sygms === 'priority-3'\n            }\" class=\"tw-w-5 tw-h-3 tw-mr-1\">\n              {{ getPriorityIcon(row?.fdlcm_defalut_priority_id_sygms) }}\n            </cide-ele-icon>\n            {{ getPriorityLabel(row?.fdlcm_defalut_priority_id_sygms) }}\n          </span>\n        </div>\n      </ng-template>\n\n      <ng-template #leadConfigCreatedForRendererTemplate let-value=\"value\" let-row=\"row\" let-column=\"column\">\n        <div class=\"tw-flex tw-items-center tw-space-x-2\">\n          <cide-ele-icon class=\"tw-text-gray-500 tw-w-4 tw-h-4\">{{ getCreatedForIcon(row?.fdlcm_lead_created_for_id_sygms) }}</cide-ele-icon>\n          <span class=\"tw-text-sm tw-text-gray-700\">{{ getCreatedForLabel(row?.fdlcm_lead_created_for_id_sygms) }}</span>\n        </div>\n      </ng-template>\n\n      <ng-template #actionsDropdownRendererTemplate let-row=\"row\" let-value=\"value\" let-column=\"column\">\n        <cide-ele-dropdown\n          [items]=\"getActionDropdownItems(row)\"\n          (itemClick)=\"onDropdownItemClick($event, row)\"\n          size=\"sm\"\n          variant=\"ghost\"\n          icon=\"more_vert\">\n        </cide-ele-dropdown>\n      </ng-template>\n    </cide-lyt-shared-wrapper>\n  `,\n  styles: [`\n    :host {\n      @apply tw-w-full tw-h-full tw-flex tw-flex-col;\n    }\n  `]\n})\nexport class LeadConfigListComponent implements OnInit, OnDestroy {\n  // Shared wrapper setup param for page code\n  shared_wrapper_setup_param = {\n    sypg_page_code: \"fdsk_lead_config_list\",\n    breadcrumb_right_template: 'createLeadConfigButton'\n  };\n\n  // Modern ViewChild signals for template renderers (Angular 20 approach)\n  leadConfigDetailsRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('leadConfigDetailsRendererTemplate');\n  leadConfigPriorityRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('leadConfigPriorityRendererTemplate');\n  leadConfigCreatedForRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('leadConfigCreatedForRendererTemplate');\n  leadConfigStatusRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('leadConfigStatusRendererTemplate');\n  leadConfigDatesRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('leadConfigDatesRendererTemplate');\n  actionsDropdownRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('actionsDropdownRendererTemplate');\n  // Computed template renderers for grid\n  templateRenderers = computed((): Record<string, TemplateRef<TemplateContext>> => ({\n    leadConfigDetailsRenderer: this.leadConfigDetailsRendererTemplate(),\n    leadConfigPriorityRenderer: this.leadConfigPriorityRendererTemplate(),\n    leadConfigCreatedForRenderer: this.leadConfigCreatedForRendererTemplate(),\n    leadConfigStatusRenderer: this.leadConfigStatusRendererTemplate(),\n    leadConfigDatesRenderer: this.leadConfigDatesRendererTemplate(),\n    actionsDropdownRenderer: this.actionsDropdownRendererTemplate()\n  }));\n\n  // Math reference for template\n  Math = Math;\n  // Dependency injection\n  private readonly destroyRef = inject(DestroyRef);\n  private leadConfigService = inject(CideFdskLeadConfigService);\n  private generalMasterTypeService = inject(CideCoreGeneralMasterTypeService);\n  private generalMasterService = inject(CideCoreGeneralMasterService);\n  private router = inject(Router);\n\n  // Signals for reactive state management\n  loading = signal(false);\n  error = signal<string | null>(null);\n  leadConfigs = signal<FdskLeadConfigMaster[]>([]);\n  priorityMasters = signal<ICoreSygms[]>([]);\n\n  // Grid configuration signal\n  gridConfig = signal({\n    id: 'lead-config-list-grid',\n    columns: [\n      {\n        key: 'details',\n        header: 'Lead Config Details',\n        type: 'custom' as any,\n        width: 'auto',\n        truncate: true,\n        align: 'left' as any,\n        renderer: 'leadConfigDetailsRenderer',\n        sortable: true,\n        filterable: true,\n        filterType: 'text' as any,\n        groupable: true,\n        hideable: true\n      },\n      {\n        key: 'fdlcm_defalut_priority_id_sygms',\n        header: 'Priority',\n        type: 'custom' as any,\n        width: '120px',\n        truncate: false,\n        align: 'center' as any,\n        renderer: 'leadConfigPriorityRenderer',\n        sortable: true,\n        filterable: true,\n        filterType: 'text' as any,\n        groupable: true,\n        hideable: true\n      },\n      {\n        key: 'fdlcm_lead_created_for_id_sygms',\n        header: 'Created For',\n        type: 'custom' as any,\n        width: '150px',\n        truncate: true,\n        align: 'left' as any,\n        renderer: 'leadConfigCreatedForRenderer',\n        sortable: true,\n        filterable: true,\n        filterType: 'text' as any,\n        groupable: true,\n        hideable: true\n      },\n      {\n        key: 'fdlcm_start_date_time',\n        header: 'Date Range',\n        type: 'custom' as any,\n        width: '200px',\n        truncate: true,\n        align: 'left' as any,\n        renderer: 'leadConfigDatesRenderer',\n        sortable: true,\n        filterable: true,\n        filterType: 'date' as any,\n        groupable: false,\n        hideable: true\n      },\n      {\n        key: 'fdlcm_isactive',\n        header: 'Status',\n        type: 'custom' as any,\n        width: '120px',\n        truncate: false,\n        align: 'center' as any,\n        renderer: 'leadConfigStatusRenderer',\n        sortable: true,\n        filterable: true,\n        filterType: 'select' as any,\n        filterOptions: [\n          { label: 'Active', value: true },\n          { label: 'Inactive', value: false }\n        ],\n        groupable: true,\n        hideable: true\n      },\n      {\n        key: 'actions',\n        header: '',\n        type: 'custom' as any,\n        width: '150px',\n        truncate: false,\n        align: 'center' as any,\n        renderer: 'actionsDropdownRenderer',\n        sortable: false,\n        filterable: false,\n        hideable: false\n      }\n    ],\n    data: [] as FdskLeadConfigMaster[],\n    trackBy: '_id',\n    columnMenu: {\n      enabled: true,\n      showSort: true,\n      showFilter: true,\n      showAutosize: true,\n      showGroupBy: true,\n      showManageColumns: true,\n      showResetColumns: true,\n      showHideColumn: true,\n      showAggregation: false\n    },\n    pagination: {\n      enabled: true,\n      pageSize: 10,\n      pageSizeOptions: [10, 25, 50, 100],\n      showQuickJump: true,\n      showPageInfo: true,\n      showRefresh: true\n    },\n    search: {\n      enabled: true,\n      placeholder: 'Search lead configurations...',\n      searchableColumns: ['fdlcm_title'],\n      debounceMs: 300\n    },\n    loading: {\n      useDefer: true,\n      skeletonRows: 5,\n      showOverlay: false\n    },\n    scroll: {\n      enabled: true,\n      maxHeight: '',\n      minHeight: '',\n      stickyHeader: true,\n      virtualScroll: false,\n      rowHeight: 50\n    },\n    responsive: true,\n    striped: false,\n    bordered: true,\n    compact: false,\n    tableClass: 'tw-table-fixed tw-w-full tw-rounded-none'\n  });\n\n  /**\n   * Get action dropdown items\n   */\n  getActionDropdownItems(leadConfig: FdskLeadConfigMaster): DropdownItem[] {\n    const items: DropdownItem[] = [\n      {\n        id: 'view',\n        label: 'View Details',\n        icon: 'visibility',\n        iconColor: 'tw-text-gray-400',\n        textColor: 'tw-text-gray-700'\n      },\n      {\n        id: 'edit',\n        label: 'Edit Lead Config',\n        icon: 'edit',\n        iconColor: 'tw-text-blue-400',\n        textColor: 'tw-text-blue-700'\n      },\n      {\n        id: 'toggleStatus',\n        label: leadConfig?.fdlcm_isactive ? 'Deactivate' : 'Activate',\n        icon: leadConfig?.fdlcm_isactive ? 'toggle_off' : 'toggle_on',\n        iconColor: leadConfig?.fdlcm_isactive ? 'tw-text-orange-400' : 'tw-text-green-400',\n        textColor: leadConfig?.fdlcm_isactive ? 'tw-text-orange-700' : 'tw-text-green-700'\n      },\n      {\n        id: 'delete',\n        label: 'Delete',\n        icon: 'delete',\n        iconColor: 'tw-text-red-400',\n        textColor: 'tw-text-red-700'\n      }\n    ];\n\n    return items;\n  }\n\n  /**\n   * Handle dropdown item click\n   */\n  onDropdownItemClick(item: DropdownItem, leadConfig: FdskLeadConfigMaster): void {\n    console.log('🔍 onDropdownItemClick called with:', { item, leadConfig });\n\n    if (!item || !item.id) {\n      console.error('Dropdown item is undefined:', item);\n      return;\n    }\n\n    if (!leadConfig) {\n      console.error('Lead config is undefined:', leadConfig);\n      return;\n    }\n\n    switch (item.id) {\n      case 'view':\n        this.viewLeadConfig(leadConfig);\n        break;\n      case 'edit':\n        this.editLeadConfig(leadConfig);\n        break;\n      case 'toggleStatus':\n        this.toggleLeadConfigStatus(leadConfig);\n        break;\n      case 'delete':\n        this.deleteLeadConfig(leadConfig);\n        break;\n      default:\n        console.warn('Unknown dropdown action:', item.id);\n    }\n  }\n\n  ngOnInit(): void {\n    // Load initial data\n    this.loadPriorityMasters();\n    this.loadLeadConfigs();\n  }\n\n  ngOnDestroy(): void {\n    // Cleanup handled by takeUntilDestroyed\n  }\n\n  /**\n   * Load priority masters from general master with type code 'lead_config_priority'\n   */\n  private loadPriorityMasters(): void {\n    console.log('🔍 Loading priority masters for lead_config_priority...');\n\n    // First, get all general master types to find the one with code 'lead_config_priority'\n    this.generalMasterTypeService.getTypeList({})\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (typeResponse: any) => {\n          if (typeResponse.success && typeResponse.data) {\n            // Find the type with code 'lead_config_priority'\n            const priorityType = typeResponse.data.find((type: ICoreSygmt) =>\n              type.sygmt_code === 'lead_config_priority'\n            );\n\n            if (priorityType) {\n              console.log('✅ Found priority type:', priorityType);\n\n              // Now get the masters for this type\n              this.generalMasterService.getMasterList({ sygms_id_sygmt: priorityType._id })\n                .pipe(takeUntilDestroyed(this.destroyRef))\n                .subscribe({\n                  next: (masterResponse: any) => {\n                    if (masterResponse.success && masterResponse.data) {\n                      console.log('✅ Priority masters loaded:', masterResponse.data);\n                      this.priorityMasters.set(masterResponse.data);\n                    } else {\n                      console.warn('⚠️ No priority masters found');\n                      this.priorityMasters.set([]);\n                    }\n                  },\n                  error: (error) => {\n                    console.error('❌ Error loading priority masters:', error);\n                    this.priorityMasters.set([]);\n                  }\n                });\n            } else {\n              console.warn('⚠️ Priority type with code \"lead_config_priority\" not found');\n              this.priorityMasters.set([]);\n            }\n          } else {\n            console.warn('⚠️ Failed to load general master types');\n            this.priorityMasters.set([]);\n          }\n        },\n        error: (error) => {\n          console.error('❌ Error loading general master types:', error);\n          this.priorityMasters.set([]);\n        }\n      });\n  }\n\n  /**\n   * Get priority icon based on priority ID\n   */\n  getPriorityIcon(priorityId: string): string {\n    const priorityMaster = this.priorityMasters().find(master => master._id === priorityId);\n    if (priorityMaster) {\n      // Check if the master has a configuration with icon\n      const config = priorityMaster.sygms_configuration as any;\n      if (config && config.icon) {\n        return config.icon;\n      }\n\n      // Default icons based on priority title\n      const title = priorityMaster.sygms_title?.toLowerCase() || '';\n      if (title.includes('high') || title.includes('urgent')) return 'priority_high';\n      if (title.includes('medium') || title.includes('normal')) return 'priority';\n      if (title.includes('low') || title.includes('low')) return 'priority';\n    }\n\n    // Fallback to hardcoded values for backward compatibility\n    switch (priorityId) {\n      case 'priority-1': return 'priority_high';\n      case 'priority-2': return 'priority';\n      case 'priority-3': return 'priority';\n      default: return 'flag';\n    }\n  }\n\n  /**\n   * Get priority label based on priority ID\n   */\n  getPriorityLabel(priorityId: string): string {\n    const priorityMaster = this.priorityMasters().find(master => master._id === priorityId);\n    if (priorityMaster) {\n      return priorityMaster.sygms_title || 'Unknown';\n    }\n\n    // Fallback to hardcoded values for backward compatibility\n    switch (priorityId) {\n      case 'priority-1': return 'High';\n      case 'priority-2': return 'Medium';\n      case 'priority-3': return 'Low';\n      default: return 'Unknown';\n    }\n  }\n\n  /**\n   * Get created for icon based on entity ID\n   */\n  getCreatedForIcon(entityId: string): string {\n    switch (entityId) {\n      case 'entity-1': return 'business';\n      case 'entity-2': return 'account_balance';\n      case 'entity-3': return 'store';\n      default: return 'domain';\n    }\n  }\n\n  /**\n   * Get created for label based on entity ID\n   */\n  getCreatedForLabel(entityId: string): string {\n    switch (entityId) {\n      case 'entity-1': return 'Main Campus';\n      case 'entity-2': return 'Branch Office';\n      case 'entity-3': return 'Online Center';\n      default: return 'Unknown Entity';\n    }\n  }\n\n  /**\n   * Get appropriate icon for lead configuration based on title\n   */\n  getLeadConfigIcon(title: string): string {\n    if (!title) return 'assignment';\n\n    const titleLower = title.toLowerCase();\n\n    if (titleLower.includes('website') || titleLower.includes('web')) return 'web';\n    if (titleLower.includes('social') || titleLower.includes('media')) return 'share';\n    if (titleLower.includes('event') || titleLower.includes('workshop')) return 'event';\n    if (titleLower.includes('newsletter') || titleLower.includes('email')) return 'email';\n    if (titleLower.includes('course') || titleLower.includes('education')) return 'school';\n    if (titleLower.includes('partnership') || titleLower.includes('collaboration')) return 'handshake';\n    if (titleLower.includes('job') || titleLower.includes('application')) return 'work';\n    if (titleLower.includes('contact') || titleLower.includes('inquiry')) return 'contact_support';\n    if (titleLower.includes('demo') || titleLower.includes('trial')) return 'play_circle';\n    if (titleLower.includes('webinar') || titleLower.includes('online')) return 'video_call';\n    if (titleLower.includes('download') || titleLower.includes('resource')) return 'download';\n    if (titleLower.includes('survey') || titleLower.includes('feedback')) return 'poll';\n    if (titleLower.includes('support') || titleLower.includes('help')) return 'support_agent';\n    if (titleLower.includes('quote') || titleLower.includes('pricing')) return 'request_quote';\n    if (titleLower.includes('consultation') || titleLower.includes('booking')) return 'schedule';\n    if (titleLower.includes('product') || titleLower.includes('service')) return 'inventory';\n    if (titleLower.includes('referral') || titleLower.includes('recommendation')) return 'recommend';\n    if (titleLower.includes('alumni') || titleLower.includes('graduate')) return 'graduation_cap';\n    if (titleLower.includes('student') || titleLower.includes('admission')) return 'person';\n    if (titleLower.includes('faculty') || titleLower.includes('recruitment')) return 'groups';\n    if (titleLower.includes('research') || titleLower.includes('study')) return 'science';\n    if (titleLower.includes('community') || titleLower.includes('forum')) return 'forum';\n    if (titleLower.includes('training') || titleLower.includes('skill')) return 'fitness_center';\n    if (titleLower.includes('certification') || titleLower.includes('credential')) return 'verified';\n    if (titleLower.includes('membership') || titleLower.includes('organization')) return 'group';\n    if (titleLower.includes('volunteer') || titleLower.includes('service')) return 'volunteer_activism';\n\n    return 'assignment'; // Default icon\n  }\n\n  /**\n   * Generate dummy lead configuration data\n   */\n  private generateDummyLeadConfigs(count: number): FdskLeadConfigMaster[] {\n    const titles = [\n      'Website Lead Form', 'Social Media Campaign', 'Event Registration', 'Newsletter Signup',\n      'Course Inquiry Form', 'Partnership Request', 'Job Application', 'Contact Us Form',\n      'Demo Request', 'Free Trial Signup', 'Webinar Registration', 'Download Form',\n      'Survey Form', 'Feedback Form', 'Support Request', 'Quote Request',\n      'Consultation Booking', 'Product Inquiry', 'Service Request', 'Referral Form',\n      'Alumni Registration', 'Student Application', 'Faculty Recruitment', 'Research Survey',\n      'Community Forum', 'Workshop Registration', 'Training Request', 'Certification Form',\n      'Membership Application', 'Volunteer Registration'\n    ];\n\n    const descriptions = [\n      'Lead capture form for website visitors interested in our courses',\n      'Lead generation form for social media marketing campaigns',\n      'Lead capture form for educational events and workshops',\n      'Newsletter subscription form for regular updates',\n      'Course inquiry form for prospective students',\n      'Partnership request form for business collaborations',\n      'Job application form for employment opportunities',\n      'General contact form for inquiries',\n      'Demo request form for product demonstrations',\n      'Free trial signup form for new users',\n      'Webinar registration form for online sessions',\n      'Download form for resource access',\n      'Survey form for feedback collection',\n      'Feedback form for service improvement',\n      'Support request form for technical assistance',\n      'Quote request form for pricing information',\n      'Consultation booking form for expert advice',\n      'Product inquiry form for product information',\n      'Service request form for service bookings',\n      'Referral form for customer referrals',\n      'Alumni registration form for graduates',\n      'Student application form for admissions',\n      'Faculty recruitment form for hiring',\n      'Research survey form for data collection',\n      'Community forum registration form',\n      'Workshop registration form for training',\n      'Training request form for skill development',\n      'Certification form for credential applications',\n      'Membership application form for organizations',\n      'Volunteer registration form for community service'\n    ];\n\n    const entities = ['entity-1', 'entity-2', 'entity-3'];\n    const priorities = ['priority-1', 'priority-2', 'priority-3'];\n    const counselors = ['counselor-1', 'counselor-2', 'counselor-3'];\n    const endpoints = [\n      '/api/leads/submit', '/api/leads/social', '/api/leads/events', '/api/leads/newsletter',\n      '/api/leads/course', '/api/leads/partnership', '/api/leads/job', '/api/leads/contact',\n      '/api/leads/demo', '/api/leads/trial', '/api/leads/webinar', '/api/leads/download',\n      '/api/leads/survey', '/api/leads/feedback', '/api/leads/support', '/api/leads/quote',\n      '/api/leads/consultation', '/api/leads/product', '/api/leads/service', '/api/leads/referral',\n      '/api/leads/alumni', '/api/leads/student', '/api/leads/faculty', '/api/leads/research',\n      '/api/leads/community', '/api/leads/workshop', '/api/leads/training', '/api/leads/certification',\n      '/api/leads/membership', '/api/leads/volunteer'\n    ];\n\n    const dummyData: FdskLeadConfigMaster[] = [];\n\n    for (let i = 0; i < count; i++) {\n      const titleIndex = i % titles.length;\n      const isActive = Math.random() > 0.2; // 80% active, 20% inactive\n\n      // Generate random dates\n      const startDate = new Date();\n      startDate.setDate(startDate.getDate() - Math.floor(Math.random() * 365)); // Random date within last year\n      startDate.setHours(Math.floor(Math.random() * 24), Math.floor(Math.random() * 60), 0, 0);\n\n      const endDate = new Date(startDate);\n      endDate.setDate(endDate.getDate() + Math.floor(Math.random() * 365) + 30); // End date 30-395 days later\n      endDate.setHours(Math.floor(Math.random() * 24), Math.floor(Math.random() * 60), 0, 0);\n\n      dummyData.push({\n        _id: (i + 1).toString(),\n        fdlcm_title: titles[titleIndex],\n        fdlcm_description: descriptions[titleIndex],\n        fdlcm_lead_created_for_id_sygms: entities[Math.floor(Math.random() * entities.length)],\n        fdlcm_defalut_priority_id_sygms: priorities[Math.floor(Math.random() * priorities.length)],\n        fdlcm_form_endpoint: endpoints[titleIndex],\n        fdlcm_default_counselor_id_user: counselors[Math.floor(Math.random() * counselors.length)],\n        fdlcm_isactive: isActive,\n        fdlcm_start_date_time: startDate,\n        fdlcm_end_date_time: endDate\n      });\n    }\n\n    return dummyData;\n  }\n\n  /**\n   * Load lead configurations from API\n   */\n  private loadLeadConfigs(): void {\n    this.loading.set(true);\n    this.error.set(null);\n\n    // Call the actual API service with proper MFdskLeads payload structure\n    this.leadConfigService.getLeadConfigList({\n      pageIndex: 1,\n      pageSize: 50,\n      query: '',\n      pagination: true,\n      sort: {\n        order: 'desc',\n        key: 'createdAt'\n      },\n      filters: {}\n    })\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (response) => {\n          if (response.success && response.data) {\n            console.log('📋 Lead configurations loaded:', response.data);\n            this.leadConfigs.set(response.data);\n            this.updateGridData();\n          } else {\n            console.warn('⚠️ Failed to load lead configurations:', response.message);\n            this.error.set(response.message || 'Failed to load lead configurations');\n          }\n          this.loading.set(false);\n        },\n        error: (error) => {\n          console.error('❌ Error loading lead configurations:', error);\n          this.error.set('Failed to load lead configurations');\n          this.loading.set(false);\n        }\n      });\n  }\n\n  /**\n   * Update grid data\n   */\n  private updateGridData(): void {\n    this.gridConfig.update(config => ({\n      ...config,\n      data: this.leadConfigs()\n    }));\n  }\n\n  /**\n   * Handle grid events\n   */\n  onGridEvent(event: any): void {\n    switch (event.type) {\n      case 'pageChange':\n        if (event.data && typeof event.data === 'object' && 'pageIndex' in event.data && 'pageSize' in event.data) {\n          this.loadLeadConfigs();\n        }\n        break;\n      case 'search':\n        // Search is now handled internally by the grid\n        break;\n      case 'refresh':\n        this.loadLeadConfigs();\n        break;\n      case 'columnSort':\n        console.log('📊 Column sorted:', event.column?.header, event.data);\n        console.log('📊 All active sorts:', event.sorts);\n        // Implement server-side sorting here if needed\n        break;\n      case 'columnFilter':\n        console.log('🔍 Column filtered:', event.column?.header, event.data);\n        console.log('🔍 All active filters:', event.filters);\n        // Implement server-side filtering here if needed\n        break;\n      case 'columnAutosize':\n        console.log('📏 Autosize column:', event.column?.header);\n        break;\n      case 'columnGroupBy':\n        console.log('📑 Group by column:', event.column?.header);\n        break;\n      case 'columnHide':\n        console.log('👁️‍🗨️ Column hidden:', event.column?.header);\n        break;\n      case 'columnShow':\n        console.log('👁️ Column shown:', event.column?.header);\n        break;\n      case 'columnReset':\n        console.log('🔄 Columns reset');\n        break;\n      case 'manageColumns':\n        console.log('⚙️ Manage columns requested');\n        break;\n    }\n  }\n\n\n  /**\n   * Create new lead configuration\n   */\n  createNewLeadConfig(): void {\n    this.router.navigate(['/control-panel/lead-config/create']);\n  }\n\n  /**\n   * View lead configuration details\n   */\n  viewLeadConfig(leadConfig: FdskLeadConfigMaster): void {\n    if (!leadConfig || !leadConfig._id) {\n      console.error('Lead config or ID is undefined:', leadConfig);\n      return;\n    }\n    console.log('👁️ Viewing lead config:', leadConfig);\n    this.router.navigate(['/control-panel/lead-config/view', leadConfig._id]);\n  }\n\n  /**\n   * Edit lead configuration\n   */\n  editLeadConfig(leadConfig: FdskLeadConfigMaster): void {\n    if (!leadConfig || !leadConfig._id) {\n      console.error('Lead config or ID is undefined:', leadConfig);\n      return;\n    }\n    console.log('✏️ Editing lead config:', leadConfig);\n    this.router.navigate(['/control-panel/lead-config/edit', leadConfig._id]);\n  }\n\n  /**\n   * Toggle lead configuration status\n   */\n  toggleLeadConfigStatus(leadConfig: FdskLeadConfigMaster): void {\n    if (!leadConfig || !leadConfig._id) {\n      console.error('Lead config or ID is undefined:', leadConfig);\n      return;\n    }\n\n    this.loading.set(true);\n    const payload = {\n      fdlcm_id: leadConfig._id!,\n      fdlcm_isactive: !leadConfig.fdlcm_isactive\n    };\n\n    this.leadConfigService.toggleLeadConfigStatus(payload)\n      .pipe(takeUntilDestroyed(this.destroyRef))\n      .subscribe({\n        next: (response) => {\n          if (response.success) {\n            // Update the local state\n            this.leadConfigs.update(configs =>\n              configs.map(lc =>\n                lc._id === leadConfig._id\n                  ? { ...lc, fdlcm_isactive: !lc.fdlcm_isactive }\n                  : lc\n              )\n            );\n            this.updateGridData();\n            console.log(`✅ Lead config ${leadConfig.fdlcm_isactive ? 'deactivated' : 'activated'} successfully.`);\n          } else {\n            console.error('❌ Failed to toggle lead config status:', response.message);\n            this.error.set(response.message || 'Failed to toggle status');\n          }\n          this.loading.set(false);\n        },\n        error: (error) => {\n          console.error('❌ Error toggling lead config status:', error);\n          this.error.set('Failed to toggle status');\n          this.loading.set(false);\n        }\n      });\n  }\n\n  /**\n   * Delete lead configuration\n   */\n  deleteLeadConfig(leadConfig: FdskLeadConfigMaster): void {\n    if (!leadConfig || !leadConfig._id) {\n      console.error('Lead config or ID is undefined:', leadConfig);\n      return;\n    }\n\n    if (confirm(`Are you sure you want to delete \"${leadConfig.fdlcm_title}\"?`)) {\n      this.loading.set(true);\n\n      this.leadConfigService.deleteLeadConfig({ fdlcm_id: leadConfig._id })\n        .pipe(takeUntilDestroyed(this.destroyRef))\n        .subscribe({\n          next: (response) => {\n            if (response.success) {\n              // Update the local state\n              this.leadConfigs.update(configs =>\n                configs.filter(lc => lc._id !== leadConfig._id)\n              );\n              this.updateGridData();\n              console.log('✅ Lead config deleted successfully.');\n            } else {\n              console.error('❌ Failed to delete lead config:', response.message);\n              this.error.set(response.message || 'Failed to delete lead config');\n            }\n            this.loading.set(false);\n          },\n          error: (error) => {\n            console.error('❌ Error deleting lead config:', error);\n            this.error.set('Failed to delete lead config');\n            this.loading.set(false);\n          }\n        });\n    }\n  }\n\n  /**\n   * Refresh data\n   */\n  refreshData(): void {\n    this.loadLeadConfigs();\n  }\n\n}\n","// Lead Config Management Components\r\nexport * from './components/lead-config-create/lead-config-create.component';\r\nexport * from './components/lead-config-list/lead-config-list.component';\r\n\r\n// Lead Config Management Services\r\nexport * from './services/lead-config.service';\r\n\r\n// Lead Config Management Interfaces\r\nexport * from './interfaces/lead-config.interface';\r\n\r\n\r\n","// Lead Config Management\r\nexport * from './lead-config-management';\r\n\r\n\r\n","/*\n * Public API Surface of cloud-ide-front-desk\n */\n\n// Main module exports\nexport * from './lib/cloud-ide-front-desk.component';\nexport * from './lib/cloud-ide-front-desk.service';\nexport * from './lib/cloud-ide-front-desk.routes';\n\n// Collection exports\nexport * from './lib/collection';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}